Wondering how to restore the Zimbra LDAP database from a backup? We can help you with it.
Here at Bobcares, we have seen several such Zimbra related queries as part of our Server Management Services for web hosts and online service providers.
Today we’ll take a look at the restoration process of the Zimbra LDAP database from backup.
How we restore Zimbra LDAP database from backup
Recently, one of our customers approached us with the below error while restarting Zimbra services.
$ zmcontrol start
Host mail.mydomain.com
Starting ldap…Done.
Unable to determine enabled services from ldap.
Unable to determine enabled services. Cache is out of date or doesn’t exist.
We found the problem to be with the LDAP database. So we decided to rebuild the database as it was unrepairable.
Now let’s take a look at how our Support Engineers restore the Zimbra LDAP database from backup.
Before restoring an LDAP from the backup, we make sure that:
- LDAP service is not running
- The /opt/zimbra/data/ldap/config directory is empty and writeable
- The /opt/zimbra/data/ldap/db directory is empty and writeable
Step 1: Stop Zimbra Services
First, we found that a recent Zimbra LDAP backup located under /opt/zimbra/backup directory. Generally, backups are named ldap_[timestamp].tar.gz and contain the following files:
- ldap.ldif
- ldap-schema.ldif (schema information)
- ldap-config.ldif (backup of all cn=config elements)
First, we stop all Zimbra Services by running the below command.
$ zmcontrol stop
Step 2: Backup Zimbra LDAP Data
After stopping the services, we back up the old data. We run the below commands as a root user.
$ mv /opt/zimbra/data/ldap/config/ /opt/zimbra/data/ldap/OLDconfig/
$ mv /opt/zimbra/data/ldap/mdb/db /opt/zimbra/data/ldap/mdb/OLD_db/
Then we recreate LDAP data folders and give them the correct permissions as below.
$ mkdir -p /opt/zimbra/data/ldap/mdb/db /opt/zimbra/data/ldap/mdb/logs
$ chown -R zimbra:zimbra /opt/zimbra/data/ldap
$ /opt/zimbra/libexec/zmfixperms -verbose
Step 3: Restore the Zimbra LDAP database from backup.
Now, we have the data directory empty. So we navigate to the directory with the LDAP backup. The backups were archived, so we uncompressed them before restoration.
$ cd /opt/zimbra/backup/sessions/incr-20190218.230007.912/ldap
$ ls
ldap.bak.gz ldap-config.bak.gz
We run the below commands to uncompress the Zimbra LDAP configuration files.
$ gunzip *.gz
$ ls
ldap.bak ldap-config.bak
Then we restore ldap-config.bak using the slapadd command. We run it as Zimbra user.
$ slapadd -q -n 0 -F /opt/zimbra/data/ldap/config -cv -l ldap-config.bak
added: “cn=config” (00000001)
added: “cn=module{0},cn=config” (00000001)
added: “cn=schema,cn=config” (00000001)
added: “cn={0}core,cn=schema,cn=config” (00000001)
added: “cn={1}cosine,cn=schema,cn=config” (00000001)
added: “cn={2}inetorgperson,cn=schema,cn=config” (00000001)
added: “cn={3}dyngroup,cn=schema,cn=config” (00000001)
added: “cn={4}zimbra,cn=schema,cn=config” (00000001)
added: “cn={5}amavisd,cn=schema,cn=config” (00000001)
added: “cn={6}opendkim,cn=schema,cn=config” (00000001)
added: “olcDatabase={-1}frontend,cn=config” (00000001)
added: “olcDatabase={0}config,cn=config” (00000001)
added: “olcDatabase={1}monitor,cn=config” (00000001)
added: “olcDatabase={2}mdb,cn=config” (00000001)
added: “olcOverlay={0}dynlist,olcDatabase={2}mdb,cn=config” (00000001)
added: “olcOverlay={1}unique,olcDatabase={2}mdb,cn=config” (00000001)
added: “olcOverlay={2}noopsrch,olcDatabase={2}mdb,cn=config” (00000001)
############## 100.00% eta none elapsed none fast!
Closing DB…
We do the same for ldap.bak.
$ slapadd -q -b “” -F /opt/zimbra/data/ldap/config -cv -l ldap.bak
Step 4: Start Zimbra Services
After restoring the database, we start all the Zimbra Services. We start with LDAP service.
$ ldap start
$ ldap status
Once it is successful, we bring up all other Zimbra Services.
# su – zimbra
$ zmcontrol start
Host mail.mydomain.com
Starting ldap…Done.
Starting zmconfigd…Done.
Starting logger…Done.
Starting convertd…Done.
Starting mailbox…Done.
Starting memcached…Done.
Starting proxy…Done.
Starting amavis…Done.
Starting antispam…Done.
Starting antivirus…Done.
Starting opendkim…Done.
Starting snmp…Done.
Starting spell…Done.
Starting mta…Done.
Starting stats…Done.
Starting service webapp…Done.
Starting zimbra webapp…Done.
Starting zimbraAdmin webapp…Done.
Starting zimlet webapp…Done.
Starting imapd…Done.
Then we check the status.
$ zmcontrol status
Host mail.mydomain.com
amavis Running
antispam Running
antivirus Running
convertd Running
imapd Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Running
opendkim Running
proxy Running
service webapp Running
snmp Running
spell Running
stats Running
zimbra webapp Running
zimbraAdmin webapp Running
zimlet webapp Running
zmconfigd Running
Finally, the customer was able to access Zimbra Admin UI and perform the normal Email administration tasks.
[Need any further assistance with Zimbra related queries? – We are here to help you.]
Conclusion
In today’s writeup, we saw how our Support Engineers restores the LDAP database from backup.
0 Comments