你怎么从一个zimbra崩溃恢复?

我运行zimbra的服务器崩溃了,现在zimbra服务器无法启动。 这是我在日志中得到的:

Nov 24 21:04:14 zimbra1 slapd[21258]: @(#) $OpenLDAP: slapd 2.4.21 (Mar 24 2010 18:25:37) $ [email protected]:/home/build/p4/main/ThirdParty/openldap/openldap-2.4.21.7z/servers/slapd Nov 24 21:04:15 zimbra1 slapd[21265]: bdb(): file id2entry.bdb has LSN 7/8194631, past end of log at 7/6485128 Nov 24 21:04:15 zimbra1 slapd[21265]: bdb(): Commonly caused by moving a database from one database environment Nov 24 21:04:15 zimbra1 slapd[21265]: bdb(): to another without clearing the database LSNs, or by removing all of Nov 24 21:04:15 zimbra1 slapd[21265]: bdb(): the log files from a database environment Nov 24 21:04:15 zimbra1 slapd[21265]: bdb(): /opt/zimbra/data/ldap/hdb/db/id2entry.bdb: unexpected file type or format Nov 24 21:04:15 zimbra1 slapd[21265]: hdb_db_open: database "": db_open(/opt/zimbra/data/ldap/hdb/db/id2entry.bdb) failed: Invalid argument (22). Nov 24 21:04:16 zimbra1 slapd[21265]: backend_startup_one (type=hdb, suffix=""): bi_db_open failed! (22) Nov 24 21:04:16 zimbra1 slapd[21265]: bdb_db_close: database "": alock_close failed 

zmcontrol -v:

 Release 6.0.6_GA_2324.RHEL5_20100406144520 CentOS5 FOSS edition. 

Perl版本5.8.8

db_recover -V:

 Berkeley DB 4.7.25: (May 15, 2008) 

从你发布的错误看起来好像LDAP服务器slapd使用的数据库已经损坏了。 有很多事情可以尝试。 首先,即使数据损坏,也要备份数据! 这里的一些build议可能会修改数据库文件,并排除备用恢复build议。

注意:我对Zimbra一无所知,但我已经使用OpenLDAP很多。 可能有Zimbra特定的事情,你应该做的,我什么都不知道。

最简单的方法就是简单地从备份中恢复数据库。 我对Zimbra并不熟悉,但大多数与LDAP后端紧密集成的应用程序包括某种forms的定期将数据库转储到LDIFlogging的forms。 如果你有这样的备份,你可能会删除/ opt / zimbra / data / ldap / hdb / db /(保存首先!)中的所有内容,并从备份中重新导入。 这个过程可能在文档的某个地方描述过。

如果您的系统上有db_recover工具(这是一个BerkeleyDB维护工具),则可以查看数据库是否可恢复。 切换到/opt/zimbra/data/ldap/hdb/db/ ,然后运行db_recover -v -h . 。 这可能或可能解决任何事情。 如果Zimbra使用的是比2.2更新的OpenLDAP(例如,2.3.x或更高版本),则会自动发生。