King0770-Notes-YAMM: Difference between revisions
(Created page with '{{WIP}} YAMM = Yet Another Migration Method '''Summary of steps''' * Export ldap and mysql data from the production server * Prepare the new server * Import ldap and mysql data…') |
|||
Line 14: | Line 14: | ||
===Export LDAP=== | ===Export LDAP=== | ||
<code><pre> | <code><pre> | ||
~/libexec/zmslapcat /tmp/migration | ~/libexec/zmslapcat /tmp/migration | ||
</pre></code> | </pre></code> | ||
===Export MYSQL=== | ===Export MYSQL=== |
Revision as of 17:32, 21 July 2010
YAMM = Yet Another Migration Method
Summary of steps
- Export ldap and mysql data from the production server
- Prepare the new server
- Import ldap and mysql data into the new server
Section I - Export ldap and mysql data from the production machine
It might help to create a directory to store the exported data.
mkdir /tmp/migration
Export LDAP
~/libexec/zmslapcat /tmp/migration
Export MYSQL
source ~/bin/zmshutil; zmsetvars
~/mysql/bin/mysqldump -u root --password=$mysql_root_password --socket=$mysql_socket --all-databases --single-transaction >> /tmp/migration/mysqlinfo.sql
mysql --batch --skip-column-names -e "show databases" | grep -e mbox -e zimbra > /tmp/migration/mysql.db.list
Section II - Prepare the new server
Highly recommend that the new machine use the same ZCS version as the production machine.
Install ZCS onto the new machine
./install </code>
After the install, make sure you use the same ldap and mysql passwords from the production machine. To view the passwords from the production machine, run the following command:
zmlocalconfig -s | grep pass | grep -e ldap -e mysql
Use the following tools on the new machine to change the ldap & mysql passwords:
zmldappasswd
zmmypasswd
**After the password changes, restart ZCS services on the new machine.**
Don't forget to install the same zimlets, and don't forget your custom changes.
Section III - Import ldap and mysql data into the new server=
Copy the ldap & mysql data from the production server
rsync -av -e ssh root@production.domain.com:/tmp/migtration /tmp/
Drop mysql DB's
source ~/bin/zmshutil; zmsetvars
for db in `mysql --batch --skip-column-names -e "show databases" | grep -e ^mbox -e zimbra`; do mysql -u root --password=$mysql_root_password -e "drop database $db"; echo -e "Dropped $db"; done
Create the necessary DB's
for db in `cat /tmp/migration/mysql.db.list`; do mysql -e "create database $db character set utf8"; echo "created $db"; done
Import production mysql data into the new machine
mysql < /tmp/migration/mysqlinfo.sql
Import ldap data from the new machine
ldap stop
cd /opt/zimbra/data/ldap
mv hdb OLD.hdb
mkdir -p hdb/db; mkdir hdb/logs
~/openldap/sbin/slapadd -q -b "" -F /opt/zimbra/data/ldap/config -cv -l /tmp/migration/ldap.bak
**Most likely, you will need to edit the ldap.bak file and replace the production server name with the new server name**
Copy store and index files from the production machine to the new machine
rm -rf /opt/zimbra/store/*
rsync -av -e ssh root@production.domain.com:/opt/zimbra/store/ /opt/zimbra/store/
rsync -av -e ssh root@production.domain.com:/opt/zimbra/index/ /opt/zimbra/index/