Moving ZCS to New Server
|This article applies to the following ZCS versions.|
This article contains two ways to move ZCS setup from your existing server to new server.
Note: Sections of this article appear to have be written for ZCS 5.0 and may not be applicable to earlier or later versions of ZCS. Additionally, for Network Edition customers, there have been updates to the zmrestore command in ZCS 6.0. To find out more about these updates, see CLI zmrestore Network Edition only.
Method For Network Edition Customers
If you are moving to new server and have latest backup with you then you should follow these steps:
- Install a new server. Keep the "hostname" and "zmhostname" same as old server.
- Take a latest full backup and after taking a full backup also take a incremental backup in your current running server. Running an incremental backup will copy the redologs and the backup will be up to date.
- Install the same version of ZCS which is running on your current system.
- Copy /opt/zimbra/backup directory from the old server to the new server in the same location.
- Now restore the data on new server using "zmrestore" command as follows:
$ zmrestoreldap -lb <label> ( Label of latest full backup )
If you are restoring large number of accounts, you may want to run this command with nohup so that the session does not terminate. (Observe whether the LDAP server is started successfully after the restore, it must be running for the next steps).
Note: To find the LDAP session label to restore, type zmrestoreldap –lbs.
$ zmrestore -sys -ra -a all -c
After issuing this command the data will get restored properly and if any error occurs it will be prompted after the process is completed.
You will get an notification that admin and wiki accounts are not restore, which you have to restore manually after this, as follows:
$ zmrestore -a firstname.lastname@example.org $ zmrestore -a email@example.com
Method For Open Source Edition Users
Second method which you can follow is using rsync command, here are the steps:
Same Operation System
If and only if the Operating System is going to be same on both old and new server:
- Stop your existing ZCS using "zmcontrol stop".
- Check if no zimbra process is running if so kill that process.
- Do a cold and offline backup of /opt/zimbra directory using rsync command:
# rsync -avHK /opt/zimbra /opt/zimbra.bak
- Copy the zimbra.bak file to the new server. (Please see Talk:Moving_ZCS_to_New_Server)
- On new server, install the same version of ZCS and Keep the "hostname" and "zmhostname" same as old server.
- Stop ZCS on new server using "zmcontrol stop".
- Remove the complete zimbra directory:
# rm -rf /opt/zimbra
- Restore from cold backup using rsync command:
# rsync -avHK /opt/zimbra.bak /opt/zimbra
Switch from 32-bit to 64-bit
If your operating system and hostname are the same, but you are switching from 32-bit to 64-bit, follow Network_Edition:_Moving_from_32-bit_to_64-bit_Server (This applies to both the Open Source and the Network Editions).
Switch Operation Systems or Hosts Using rsync
These are experimental notes on migrating from Fedora Core 6 x64 (running RHEL5 version) to Ubuntu 10.04 x64 (running Ubuntu 10.04 version) on a new host with ZCS 6.0.8, but may be applicable to other switches
- Stop your existing ZCS using zmcontrol stop.
- Follow the instructions on Network_Edition:_Moving_from_32-bit_to_64-bit_Server to export the LDAP configuration from the old server (you'll import it later)
- Check that no zimbra process is running - if not kill that process.
- Backup your /opt/zimbra folder to the new server:
# rsync -avZP /opt/zimbra/ newserver:/opt/zimbra.$oldserver/
- Perform a clean install of the same version of Zimbra as you had on the old server, on the new server (with the new server as the default hostname)
- Shut down zimbra on the new server using zmcontrol stop
- Copy the data and config from your old server over the relevant directories on the new server (as root):
# cd /opt/zimbra # mkdir /var/tmp/zcs-distribution-backup # mv conf data db index logger postfix-*/conf redolog store /var/tmp/zcs-distribution-backup # for f in conf data db index logger postfix-*/conf redolog store ; do mv /opt/zimbra.$oldserver/$f/ $f/ ; done # rm data/postfix/spool/pid/master.pid
- Follow the instructions on Network_Edition:_Moving_from_32-bit_to_64-bit_Server to import the LDAP configuration from the old server to the new one. Note that you should rather pass the exact ldap.bak filename than the whole directory or slapadd can hang
- If the uid or gid of the zimbra user have changed, edit them in /opt/zimbra/conf/localconfig.xml
- Run /opt/zimbra/libexec/zmfixperms as root
- This is now a version of Zimbra for your new operating system, with your old operating system's data, that thinks it's still the old hostname
- Add your old servername to /etc/hosts but make it point at the new server's IP address
- Start up ldap as zimbra:
# ldap start
- Change the hostname with zmsetservername -n $newserver following ZmSetServerName instructions to see if there are any other values that need changing. (You should also search for IP addresses like zimbraMtaMyNetworks etc)
- Restart zimbra on the new server with zmcontrol restart
- Remove your old servername from /etc/hosts
- Check that everything starts up OK by watching /var/log/zimbra.log. If not debug, rinse and repeat