This is not a HA and it’s not using any ldap replication engine and mysql replication engine.
The methodology is just
backup –> transfer –> restore
The tools needed;
i. rsync
ii. NFS daemon
iii. mysqldump and restore (for mysql)
iv. slapcat (for ldap)
v. crond
Let’s start
ON THE MAIN SERVER
1. First of all sync the data in /var/vmail and /var/www to the backup server using rsync:
rsync -av –delete –stats –progress /var/vmail/ root@destination-host:/var/vmail/
beware of –delete option, this cmd will delete data that is in backup server and not in primary server.
2. Then sync the www folder
rsync -av –delete –stats –progress /var/www/ root@destinan-host:/var/www/
3. Backup the mysql – all database
mysqldump -u root -pPASSWD –all-databases > /mnt/ur-nfs-mount-folder/all-database.sql (Please read my previous article how to setup NFS)
4. Then run the backup script of LDAP provided by iredmail tools in /root/iRedmail/tools/ . Edit the files and change the path of destination backup to the /mnt/ur-nfs-mount-folder
5. Set all cmd to the crond, for example 1 hour
0 */1 * * * /root/rsync.sh
ON THE BACKUP SERVER
1. Run mysql restore
mysql -pPASSWD < /var/nfs/all-database.sql
2. Create shell script to restore ldap as follow
#!/bin/bash
touch /tmp/ldap-restore && exit
rm -rf /var/lib/ldap/domain.com/__*
rm -rf /var/lib/ldap/domain.com/*.bdb
rm -rf /var/lib/ldap/domain.com/alock
rm -rf /var/lib/ldap/domain.com/log.*
/etc/init.d/ldap stop
/usr/sbin/slapadd -f /etc/openldap/slapd.conf -l /var/nfs/backup-ldap.ldif
chown -R ldap.ldap /var/lib/ldap/domain.com/
/etc/init.d/ldap start
3. Run the script on crond, maybe you might set every 1hour or some minutes for giving some time for primary server to generate the backup and rsync.
-EoF-