Назад | Перейти на главную страницу

Как вы оправляетесь после крушения «Зимбры»?

Мой сервер, на котором запущена 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 или новее), это должно произойти автоматически.