Мой сервер, на котором запущена zimbra, сильно разбился, и теперь сервер zimbra не запускается. Вот что я получаю в журналах:
Nov 24 21:04:14 zimbra1 slapd[21258]: @(#) $OpenLDAP: slapd 2.4.21 (Mar 24 2010 18:25:37) $ build@build10.lab.zimbra.com:/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)
Судя по опубликованным вами ошибкам, похоже, что база данных, используемая slapd
, сервер LDAP поврежден. Есть ряд вещей, которые вы можете попробовать. Во-первых, сделайте резервную копию ваших данных, даже если они повреждены! Некоторые из приведенных здесь предложений могут изменить файлы базы данных и исключить альтернативные варианты восстановления.
NB: Я ничего не знаю о Zimbra, но я немного работал с OpenLDAP. Возможно, вам следует делать какие-то специфические для Zimbra вещи, о которых я ничего не знаю.
Самый простой - просто восстановить базу данных из резервных копий. В частности, я не знаком с Zimbra, но большинство приложений, которые тесно интегрируются с серверной частью LDAP, включают в себя некоторую форму периодического дампа базы данных в записи LDIF. Если у вас есть такая резервная копия, вы, вероятно, можете удалить все в / opt / zimbra / data / ldap / hdb / db / (СОХРАНИТЕ ЭТО ПЕРВЫЙ!) И повторно импортировать из своих резервных копий. Эта процедура, вероятно, описана где-то в документации.
Если db_recover
инструмент доступен в вашей системе (это инструмент обслуживания BerkeleyDB), вы можете увидеть, можно ли восстановить базу данных. Изменить на /opt/zimbra/data/ldap/hdb/db/
, а затем запустите db_recover -v -h .
. Это может или может решить что угодно. Если Zimbra использует OpenLDAP более свежую, чем 2.2 (например, 2.3.x или новее), это должно произойти автоматически.