Support Engineering Group : Upgrade of Alfresco 2.1.1 to 4.1.1 This page last changed on Dec 15, 2012 by mmccarthy. Literally, years went by without Alfresco being upgraded because I just never carved out the time for it. We finally decided that we needed to get the upgrade done and I just wasn't going to get to it so we talked to Alfresco and they provided us a partner (Tribloom) that we will just pay to do the upgrade. They sent us a Scope Of Work to which we wrote a PO. Duane was actually nice enough to let us use funds from his group to do this, thanks Duane! ##### Goals To get things the way we want them, the goals of the upgrade are: Move Alfresco from 2.1.1 to 4.1.1 Move form SQL Server 2005 to SQL Server 2008 Move from Windows Server 2003 to RHEL 6.1 x64 ##### Current 2.1.1 Server Before starting the upgrade, I drew the following logical diagram of the pieces that are most important to the upgrade. Here is a diagram of where we would like to move to:
7. Planned Steps Our Alfresco rep contacted a partner that we hired to do the upgrade with/for us. These are the planned steps for that upgrade. First I read over the supported stacks document here: 4.X Supported Stacks Then read about backing up and restoring Alfresco here: Backup and Restore for Alfresco The next step was to look over the general upgrade process detailed here: http://wiki.alfresco.com/wiki/General_Upgrade_Process I also read over the JVM tuning guide for Alfresco here: http://wiki.alfresco.com/wiki/JVM_Tuning I also utilized the installation notes for the test and production servers that I document here: Production Alfresco Installation Notes Test Alfresco Installation Notes [TRIBLOOM] Submit a help ticket to Alfresco support to let them know that we will be attempting this upgrade and keep logging details during the upgrade.
   | RHEL 5.5 is target for Tribloom Because we have to go through an intermediate version during the request and that version is only supported on RHEL 5.5, the Tribloom upgrade will only be to RHEL 5.5 and MBARI will move to RHEL 6.1.
30. [Pat Allen] Create four RHEL VMs, one for RHEL 5 test, one for RHEL 5 production, one for RHEL 6 test, and one for RHEL 6 production: alfresco5.mbari.org (production) alfresco5-test.mbari.org (test) alfresco6.mbari.org (production) alfresco6-test.mbari.org (test) [Pat Allen] Install JDK 6 U33 x64 on all four machines [Cathy Sewell] Setup SSL certificates for all four machines [Kevin Gomes] Shutdown production and test alfrescos (alfresco.mbari.org and alfresco-test.shore.mbari.org) [Kevin Gomes] Backup alfresco database on equinox.shore.mbari.org to local disk on equinox [Kevin Gomes] Backup //atlas.shore.mbari.org/Alfresco/alf_data [Kevin Gomes] Store alf_data backup and alfresco DB backup on equinox somewhere safe [Kevin Gomes] Copy //atlas.shore.mbari.org/Alfresco/alf_data to //atlas.shore.mbari.org/AlfrescoTest/alf_data [TRIBLOOM] Install Alfresco 3.4.10 on alfresco5-test.mbari.org [TRIBLOOM] Point 3.4.10 dir.root to local directory on alfresco5-test.mbari.org [Neil Conner] Create new 'alfresco' database on foghorn.shore.mbari.org [Neil Conner] Create new 'alf-temp' database on foghorn.shore.mbari.org [TRIBLOOM] Point 3.4.10 database to 'alf-temp' database on foghorn.shore.mbari.org [TRIBLOOM] Start up 3.4.10 on alfresco5-test.mbari.org [TRIBLOOM] Verify 3.4.10 clean installation is working on alfresco5-test.mbari.org [TRIBLOOM] Shutdown 3.4.10 on alfresco5-test.mbari.org [Kevin Gomes] Restore equinox database backup over the 'alfresco' foghorn database [Kevin Gomes] Change compatibility mode on alfresco db on foghorn from 2000 to 2008. [TRIBLOOM] Point 3.4.10 database to 'alfresco' database on foghorn [TRIBLOOM] Point 3.4.10 dir.root to NFS mounted //atlas.shore.mbari.org/AlfrescoTest/alf_data [TRIBLOOM] Configure 3.4.10 with MBARI configuration (Active directory and SSL) [TRIBLOOM] Start 3.4.10 and watch log file [TRIBLOOM] Validate 3.4.10 installation is working properly
    | What about indexes? We are moving to Solr indexes in 4.1.1 so do we just leave out the migration of the lucene indexes?
45. [TRIBLOOM] Shutdown 3.4.10 on alfresco5-test.mbari.org [TRIBLOOM/Neil Conner] Backup //atlas.shore.mbari.org/AlfrescoTest/alf_data [TRIBLOOM/Neil Conner] Backup 'alfresco' database on foghorn to local disk [TRIBLOOM] Install Alfresco 4.1.1 on alfresco5-test.mbari.org [Neil Conner] Create 'alf-temp' database on foghorn [TRIBLOOM] Point 4.1.1 dir.root to empty local directory [TRIBLOOM] Point 4.1.1 database to 'alf-temp' database on foghorn [TRIBLOOM] Startup 4.1.1 on alfresco5-test.mbari.org [TRIBLOOM] Verify clean 4.1.1 works on alfresco5-test.mbari.org [TRIBLOOM] Shutdown 4.1.1 [TRIBLOOM] Configure 4.1.1 with MBARI configurations (Active Directory and SSL) [TRIBLOOM] Point 4.1.1 dir.root to //atlas.shore.mbari.org/AlfrescoTest/alf_data NFS mount [TRIBLOOM] Point 4.1.1 database to 'alfresco' database on foghorn.shore.mbari.org [TRIBLOOM] Start 4.1.1 and monitor log files [TRIBLOOM] Verify 4.1.1 operation
    | Solr indexes Should we have Alfresco build all the Solr indexes here?
    | Can we just do backup/restore We may want to try and cold backup/restore from the test system to the production system instead of going through all these steps again!
73. [TRIBLOOM] Install Alfresco 3.4.10 on alfresco5.mbari.org [TRIBLOOM] Point 3.4.10 dir.root to local directory on alfresco5.mbari.org [Neil Conner] Create new 'alf-temp' database on equinox.shore.mbari.org [TRIBLOOM] Point 3.4.10 database to 'alf-temp' database on equinox.shore.mbari.org [TRIBLOOM] Start up 3.4.10 on alfresco5.mbari.org [TRIBLOOM] Verify 3.4.10 clean installation is working on alfresco5.mbari.org [TRIBLOOM] Shutdown 3.4.10 on alfresco5.mbari.org [TRIBLOOM] Point 3.4.10 dir.root to NFS mounted //atlas.shore.mbari.org/Alfresco/alf_data [Kevin Gomes] Change compatibility mode on alfresco db on equinox to 2008 [TRIBLOOM] Point 3.4.10 dir.root to 'alfresco' production database on equinox.shore.mbari.org [TRIBLOOM] Configure 3.4.10 with MBARI configuration (Active directory and SSL) [TRIBLOOM] Start 3.4.10 and watch log file [TRIBLOOM] Validate 3.4.10 installation is working properly [TRIBLOOM] Shutdown 3.4.10 on alfresco5.mbari.org [TRIBLOOM/Neil Conner] Backup //atlas.shore.mbari.org/Alfresco/alf_data [TRIBLOOM/Neil Conner] Backup 'alfresco' database on equinox to local disk [TRIBLOOM] Install Alfresco 4.1.1 on alfresco5.mbari.org [TRIBLOOM/Neil Conner] Re-create empty 'alf-temp' database on equinox.shore.mbari.org [TRIBLOOM] Point 4.1.1 dir.root to empty local directory on alfresco5.mbari.org [TRIBLOOM] Point 4.1.1 database to 'alf-temp' database on foghorn [TRIBLOOM] Startup 4.1.1 on alfresco5.mbari.org [TRIBLOOM] Verify clean 4.1.1 works on alfresco5.mbari.org [TRIBLOOM] Shutdown 4.1.1 [TRIBLOOM] Configure 4.1.1 with MBARI configurations (Active Directory and SSL) [TRIBLOOM] Point 4.1.1 dir.root to //atlas.shore.mbari.org/Alfresco/alf_data NFS mount [TRIBLOOM] Point 4.1.1 database to 'alfresco' database on equinox.shore.mbari.org [TRIBLOOM] Start 4.1.1 and monitor log files [TRIBLOOM] Verify 4.1.1 operation
    | Solr indexes Build Solr indexes here?
    | End of Tribloom SOW At this point we should have a fully upgraded 4.1.1 Alfresco running on RHEL 5.5 pointing to an NFS mount that points to //atlas.shore.mbari.org/Alfresco/alf_data, points to a local directory for the Solr indexes and points to the 'alfresco' database on equinox.shore.mbari.org. This is the end of the Tribloom scope or work.
75. [MBARI] Shutdown 4.1.1 on alfresco5-test.mbari.org [MBARI] Install and configure 4.1.1 on alfresco6-test.mbari.org exactly as it was on alfresco5-test.mbari.org (or copy from alfresco5-test.mbari.org)
    | Triblooms instructions are critical here In order for use to configure 4.1.1 in the exact same manner on RHEL 6 as was done on RHEL 5.5, we will need very detailed instructions for how Tribloom configured the 4.1.1 installation on alfresco5-test.mbari.org. Or, maybe we can simply copy the 4.1.1 installation to alfresco6-test.
88. [MBARI] Copy Solr indexes from alfresco5-test.mbari.org to alfresco6-test.mbari.org [MBARI] Mount //atlas.shore.mbari.org/AlfrescoTest/alf_data on alfresco6-test.mbari.org [MBARI] Point 4.1.1 dir.root on alfresco6-test.mbari.org to NFS mount [MBARI] Point 4.1.1 database to 'alfresco' database on foghorn.shore.mbari.org [MBARI] Start up and verify 4.1.1 installation on alfresco6-test.mbari.org [MBARI] Shutdown 4.1.1 on alfresco5.mbari.org [MBARI] Install and configure 4.1.1 on alfresco6.mbari.org exactly as it was on alfresco5.mbari.org (or copy from alfresco5.mbari.org) [MBARI] Copy Solr indexes from alfresco5.mbari.org to alfresco6.mbari.org [MBARI] Mount //atlas.shore.mbari.org/Alfresco/alf_data on alfresco6.mbari.org [MBARI] Point 4.1.1 dir.root on alfresco6.mbari.org to NFS mount [MBARI] Point 4.1.1 database to 'alfresco' database on equinox.shore.mbari.org [MBARI] Start up and verify 4.1.1 installation on alfresco6.mbari.org [MBARI] Create alias so that https://alfresco.mbari.org points to alfresco6.mbari.org
    | Dismantle the old After all has been verified, the old alfresco.mbari.org 2003 server and alfresco-test.mbari.org can be backed up and destroyed
| Actual Upgrade Steps [kgomes] I sent out a note at 2PM on 12/12 notifying everyone that Alfresco would be going down at 3PM. [kgomes] I used remote desktop to login as me on alfresco.mbari.org. [kgomes] I shutdown the Alfresco service and changed it to manual startup. [kgomes] I logged off alfresco.mbari.org. [kgomes] I used remote desktop to login as me on alfresco-test.shore.mbari.org. [kgomes] I shutdown the Alfresco service and changed it to manual restart. [kgomes] I logged off alfresco-test.shore.mbari.org [kgomes] I used remote desktop to login as me on foghorn.shore.mbari.org [kgomes] I opened up to explorer windows and mounted the network drives for atlas shares Alfresco and AlfrescoTest [kgomes] I created a directory on the Alfresco share called '2012_12_12_2.1.1' to server as the backup location of the production repository [kgomes] I called Neil and he started a direct Atlas copy of the alf_data directory on the Alfresco share to the new 2012_12_12_2.1.1 directory to serve as a backup. [kgomes] I also had Neil do the same copy to AlfrescoTest share on atlas (but this time only of the contents inside the alf_data folder because alf_data directory already existed on AlfrescoTest and was mounted to the RHEL VMs). [kgomes] I started up SQL Server Management Studio and connected to the database server on equinox.shore.mbari.org [kgomes] I expanded the databases and right-click on the 'Alfresco' database and chose 'Task -> Backup ...' [kgomes] Accepted the defaults [kgomes] Under options, I selected 'Verify after backup' [kgomes] Under General, I selected 'Disk' as the destination, then clicked on 'Add...' [kgomes] I added the file name '2012_12_12_2.1.1' to the default path as the file name to save it to [kgomes] I then took about 15 minutes and stated it was completed successfully. [kgomes] I then mapped the equinox 'backup' folder on foghorn and could then see the backup of the SQL database. [kgomes] I copied the backup to the backup file to the D:\MSSQL 10.MSSQL\MSSQL\BACKUP directory so I could use it to restore the database on foghorn [kgomes] On foghorn I started up SQL Server Management Studio again [kgomes] I right-clicked on the "Databases" icon and select "Restore Database..." [kgomes] I entered 'Alfresco' as the "To database" name to restore to [kgomes] I selected 'From Device', then clicked on the "..." button. [kgomes] I left the default media of "file" and then clicked "Add..." [kgomes] Then I had to select "All Files" from the "Files of Type" because I forgot to add the .bak extension when I backed it up. [kgomes] Then selected OK, then OK again. [kgomes] I put a check mark next to the new device entry. [kgomes] I looked under "Options" and selected "Overwrite the existing database" even though I don't think it is needed in this case. [kgomes] Then I clicked OK to fire it off. [kgomes] After this, Neil and I noticed that the schema being used on the tables was 'LAGOON\DB_Collaboration'. Neil wanted to change that to 'dbo'. He made the change and we may have to edit the JTDS driver URL to use that schema specifically (if it works at all). [kgomes] I then logged into alfresco.mbari.org and copied the 'lucence-indexes' directory on the D:\alf_data to the 2012_12_12_2.1.1 directory on atlas\Alfresco so that we had a backup of the indexes. [kgomes] I copied the database backup from equinox to the same share so we had all three: content store, database backup and lucene-indexes all in one spot. [kgomes] I downloaded version 2.1.7.1, 3.4.10, 3.4.11 and 4.1.1.3 and put them in the /tmp directory on alfresco5-test.mbari.org and on alfresco5.mbari.org [kgomes] I put a README.txt file in this same directory to explain all this. [TRIBLOOM] Step 1 - Alfesco 2.1.7.1 -Unzip alfresco-enterprise-tomcat-2.1.7.1.zip -Create directory /opt/alfresco-enterprise-2.1.7.1 -Create symbolic link from /opt/alfresco to /opt/alfresco-enterprise-2.1.7.1 -Modify /opt/alfresco/tomcat/shared/classes/alfresco/extension/custom-repository.properties for SQL Server DB -Use alf2_1_7@foghorn.shore.mbari.org for the DB and a new/blank content store and indexes -Modify /opt/alfresco/tomcat/shared/classes/alfresco/extension/custom-hibernate-dialect.properties for SQL Server DB -Create /etc/init.d/alfresco from https://wiki.alfresco.com/wiki/Installing_Alfresco_2.1_on_Ubuntu_7.10 (modify for AlfrescoSvc user, remove iptables, redirection, and open office, and change log location) -Adjust permissions/ownership as necessary -Adjust access to the firewall as necessary -Verify "stock" Alfresco is working (use a web browser on port 8080) [TRIBLOOM] Step 2 - "Upgrade" Alfresco 2.1.1 content/DB to Alfresco 2.1.7.1 -Delete the alf_bootstrap_lock table -Delete all JBPM_* tables from the DB (this will destroy any in process workflows) -Redirect Alfresco to the old DB (Alfresco@foghorn.shore.mbari.org) and content store using /opt/alfresco/tomcat/shared/classes/alfresco/extension/custom-repository.properties -Set index.recovery.mode=FULL to rebuild indexes (note this process took about 9 hours) [TRIBLOOM] Step 3 - Alfresco 2.2.8 -Run the linux installer ./AlfrescoEnterprise-2.2.8-Linux-x86-Install -Use /opt/alfresco-enterprise-2.2.8 for the target directory -Remove the old sym link /opt/aflresco rm /opt/alfresco -relink /opt/alfresco to 2.2.8 ln -s /opt/alfresco-enterprise-2.2.8 /opt/alfresco -Modify /opt/alfresco/tomcat/shared/classes/alfresco/extension/custom-repository.properties for SQL Server DB -Use alf2_2_8@foghorn.shore.mbari.org for the DB and a new/blank content store and indexes -Modify /opt/alfresco/tomcat/shared/classes/alfresco/extension/custom-hibernate-dialect.properties for SQL Server DB [TRIBLOOM] Step 4 - "Upgrade" Alfresco 2.1.1 content/DB to Alfresco 2.1.7.1 -Delete the duplicate archive nodes using this script: /***** Script for removing duplicate archive nodes *****/ delete FROM [Alfresco].[dbo].[alf_node_status] where node_id in ( select A.id from ( SELECT count(n.id) as num, n.id FROM alfresco.dbo.alf_node n JOIN alfresco.dbo.alf_node_status nstat ON (nstat.node_id = n.id) JOIN alfresco.dbo.alf_store s ON (s.protocol = nstat.protocol AND s.identifier = nstat.identifier) group by n.id) A where A.num > 1 ) and protocol='archive' -Redirect Alfresco to the old DB (Alfresco@foghorn.shore.mbari.org) and content store using /opt/alfresco/tomcat/shared/classes/alfresco/extension/custom-repository.properties
Attachments: Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Alfresco 2.1.1 Production System (text/xml) Upgraded Logical Diagram (text/xml) Upgraded Logical Diagram (text/xml) Upgraded Logical Diagram (text/xml) Upgraded Logical Diagram (text/xml) Upgraded Logical Diagram (text/xml) Upgraded Logical Diagram (text/xml) Upgraded Logical Diagram (text/xml) Upgraded Logical Diagram (text/xml)

Document generated by Confluence on Feb 03, 2026 16:22