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

восстановить базу данных ldap без файлов журнала

Мой коллега случайно удалил файлы журнала транзакций ldap (из / var / lib / ldap) на нашем сервере ldap 2.4, работающем на centos. Теперь slapd deamon не запускается, если запустить его с флагом отладки, вот что говорит:

file id2entry.bdb has LSN 754/2932421, past end of log at 1/660
sept. 11 12:40:14 centos7.ent.univ slapd[4917]: bdb(dc=uit,dc=ac,dc=ma): BDB2507 Commonly caused by moving a database from one database environment
sept. 11 12:40:14 centos7.ent.univ slapd[4917]: bdb(dc=uit,dc=ac,dc=ma): BDB2508 to another without clearing the database LSNs, or by removing all of
sept. 11 12:40:14 centos7.ent.univ slapd[4917]: bdb(dc=uit,dc=ac,dc=ma): BDB2509 the log files from a database environment

Я попытался запустить утилиту db_recover, она говорит, что восстановление прошло успешно, но slapd еще не запускается, та же ошибка.

Зная точно, что удаление файлов журнала является виновником, и не имея файлов резервных копий, есть ли способ восстановить базу данных без файлов журнала?

После нескольких часов испытаний произошел сбой, вот что это сделало:

  1. Резервное копирование / var / lib / ldap и / etc / openldap

tar -czf ldap.bak.gzip / var / lib / ldap / etc / openldap

  1. Создайте дамп файлов bdb в / var / lib / ldap

db_dump -f файл.dump файл.bdb

  1. удалите файлы bdb, затем создайте их снова, используя db_load (запишите все файлы, если вы удалите их сразу, или сделайте это один за другим)

rm -f file.bdb

db_load -f file.dump file.bdb

Если вы столкнулись с ошибкой при запуске db_dump, запустите:

db_recover -h / var / lib / ldap

как только вы создали все файлы bdb из файлов дампа, убедитесь, что они принадлежат нужному пользователю:

chown ldap: ldap / var / lib / ldap / *

Попробуйте запустить ldap deamon:

запуск службы slapd

Вы можете попробовать запустить другой db_recover, если он по-прежнему не запускается, но если все файлы bdb были успешно перестроены и имеют необходимые разрешения, демон должен запуститься. На этом этапе сделайте резервную копию всех ваших данных в файл ldif:

slapcat> ldap.bak.ldif

Используя клиент LDAP, попробуйте манипулировать данными (операции добавления, редактирования, удаления), если все в порядке, тогда хорошо для вас, если нет, переустановите сервер LDAP и восстановите данные, используя созданную вами резервную копию ldif.