Recovering from wrong platform upgrade
|This article applies to the following ZCS versions.|
If using the --platform-override switch with install.sh, it is possible to mistakenly install Zimbra for the wrong platform. For example, the override will allow installation of ZCS for Red Hat Linux 5 if the server is running Red Hat Linux 4. As a result, the upgrade will fail and installed binaries will not run. The installation is broke. The goal is to now recover the system to a functional state so ZCS for the correct platform can be installed.
What Not To Do
Once the mistake is realized, DO NOT
- Try installing the desired ZCS version with the correct platform over the broken install. This will cause DATA LOSS.
- Try installing the original ZCS version with the correct platform over the broken install. This will cause DATA LOSS.
- Reboot the system. It will not help.
To fix the problem, the ZCS installation needs to be put back to the version and platform that was running prior to the upgrade attempt. For example, if ZCS 5.0.6 RHEL4 was running and an attempt to install 5.0.18 RHEL5 was made, the system will need to be rolled back to 5.0.6 RHEL4. After the rollback and services are confirmed to be running under 5.0.6 again, the system can be upgraded to 5.0.18 RHEL4. Follow these steps carefully. If in doubt, please get help. All services are assumed to be down.
Backup The Installation
- Make a file system backup of /opt/zimbra.
- Verify /opt/zimbra/conf/localconfig.xml is intact. Copy localconfig.xml out of /opt/zimbra/conf and note its location for later.
Manually Remove All Zimbra System Packages
Remove all Zimbra packages from the system. This will not remove your data, but will wipe out conf/localconfig.xml.
rpm -qa | grep zimbra rpm -e --nodeps zimbra-<component>
Manually Install Zimbra System Packages
Manually install the Zimbra system packages for the correct platform and original ZCS version. Only install needed packages for the server to run; i.e., packages removed in the previous step of this guide.
- Open the ZCS installation package and change directory to <zcs package>/packages.
- Install the packages. WARNING /opt/zimbra/conf/localconfig.xml will be overwritten during this step. Be sure there is a backup.
rpm -i zimbra-core_<version> rpm -i zimbra-ldap_<version> ...
- Replace /opt/zimbra/conf/localconfig.xml with the backed up copy.
/opt/zimbra/.install_history should be edited to remove entries for the installation of the incorrect platform. Edit the file and remove the appropriate lines including INSTALL SESSION START and INSTALL SESSION COMPLETE. E.g.,
1243562911: INSTALL SESSION START 1243562930: UPGRADED zimbra-core-5.0.16_GA_2921.RHEL4_64-20090429021714.x86_64.rpm 1243562931: UPGRADED zimbra-ldap-5.0.16_GA_2921.RHEL4_64-20090429021714.x86_64.rpm 1243562932: UPGRADED zimbra-snmp-5.0.16_GA_2921.RHEL4_64-20090429021714.x86_64.rpm 1243562948: UPGRADED zimbra-store-5.0.16_GA_2921.RHEL4_64-20090429021714.x86_64.rpm 1243562950: UPGRADED zimbra-apache-5.0.16_GA_2921.RHEL4_64-20090429021714.x86_64.rpm 1243562951: UPGRADED zimbra-spell-5.0.16_GA_2921.RHEL4_64-20090429021714.x86_64.rpm 1243562952: UPGRADED zimbra-archiving-5.0.16_GA_2921.RHEL4_64-20090429021714.x86_64.rpm 1243562953: UPGRADED zimbra-convertd-5.0.16_GA_2921.RHEL4_64-20090429021714.x86_64.rpm 1243562953: INSTALL SESSION COMPLETE
Be sure the last line is CONFIG SESSION COMPLETE which would have been from the previous successful installation or upgrade. E.g.,
1251771724: CONFIG SESSION COMPLETE
Manually Check Services
Verify Zimbra services will run outside of zmcontrol.
ldap start zmstorectl start zmprov -l gaa zmprov gas
The zmprov commands should return accurate responses. If things look good, shutdown services manually, then start with zmcontrol.
Upgrade ZCS With Correct Platform
At this point, the desired ZCS version can be installed with the standard upgrade procedure. If at any point in the upgrade the installation script requests input for any configuration that should have been recognized (admin password, server name, etc.), stop the installation and get help.