如何从备份恢复Zimbra LDAP数据库

时间:2020-02-23 14:38:59  来源:igfitidea点击:

在当今的教程中,我们将研究如何从备份中恢复Zimbra LDAP数据库。
这是灾难恢复的有用方法之一。
要使用此方法,我们需要在处于良好状态时具有先前的LDAP配置备份。

尝试启动Zimbra服务时,我在下面有一个错误。

$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.

经过大量故障排除后,我注意到问题是无法修复的LDAP数据库。
唯一的解决方案是重建LDAP数据库。

第1步:停止Zimbra服务

在我的服务器中,我有一个最近的zimbra ldap备份 /opt/zimbra/backup目录。
但首先,我们需要停止所有Zimbra服务。

$zmcontrol stop

第2步:备份Zimbra LDAP数据

一旦服务停止,备份旧数据 - 我们需要将其运行为root用户。

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/

然后重新创建LDAP数据文件夹并给出正确的权限。

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

第3步:从备份恢复Zimbra LDAP数据库。

既然我们将数据目录空显示为空,请使用LDAP备份导航到目录。
如果备份归档,则需要在恢复之前解压缩它们。

$cd /opt/zimbra/backup/sessions/incr-20190218.230007.912/ldap
$ls
ldap.bak.gz  ldap-config.bak.gz

解压缩Zimbra LDAP配置文件。

$gunzip *.gz
$ls
ldap.bak  ldap-config.bak

恢复 ldap-config.bak使用 slapadd命令 - 作为Zimbra用户运行。

$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…

做同样的事情 ldap.bak

$slapadd -q -b "" -F /opt/zimbra/data/ldap/config -cv -l ldap.bak

第4步:启动Zimbra服务

恢复后,尝试启动所有Zimbra服务。
我们可以从LDAP服务开始。

ldap start
ldap status

如果成功,请提出所有其他Zimbra服务。

# 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.

检查状态应显示所有运行的所有服务。

$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

我们现在应该能够访问Zimbra Admin UI并执行正常的电子邮件管理任务。