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

Как прочитать файл журнала Berkeley DB для slapd?

Я использую OpenLDAP slapd на Fedora 14, и я вижу, что в каталоге базы данных есть log.0000000001 файл. Я хотел бы иметь возможность прочитать этот файл, так как меня интересуют последние произошедшие транзакции. Как мне прочитать этот файл?

Для общей базы данных Berkeley db4-utils пакет, включающий некоторые инструменты для управления:

db_archive
db_checkpoint
db_deadlock
db_dump
db_dump185
db_load
db_printlog
db_recover
db_stat
db_upgrade
db_verify

Но если вы используете db_printlog чтобы прочитать файлы журнала Berkeley из OpenLDAP, вы получите следующие ошибки:

db_printlog: версия программы 4.3 не соответствует версии среды db_printlog: DB_ENV-> open: DB_VERSION_MISMATCH: несоответствие версии среды базы данных

Причина в том, что OpenLDAP поставляется с инструментами внутреннего копирования db-4.3:

slapd_db_archive
slapd_db_checkpoint
slapd_db_deadlock
slapd_db_dump
slapd_db_hotbackup
slapd_db_load
slapd_db_printlog
slapd_db_recover
slapd_db_stat
slapd_db_upgrade
slapd_db_verify

Итак, попробуйте это:

slapd_db_printlog -h /var/lib/ldap/ | less

Не знаю, как читать этот файл, но вы можете посмотреть «недавно» созданные или измененные записи с помощью
ldapsearch "(|(createTimestamp>=20110927221035Z)(modifyTimestamp>=20110927221035Z))" dn creatorsName createTimestamp modifiersName modifyTimestamp

OpenLDAP может использовать средства системного журнала для регистрации многих вещей. Не знаю, делает ли Fedora 14 (или с какой степенью подробности) это по умолчанию (или в вашей среде). (Вы, вероятно, уже проверили это, поэтому, вероятно, этого недостаточно.)

Более подробный ответ на ваш вопрос можно найти на http://www.openldap.org/faq/data/cache/738.html до того, как ссылки устарели. Хотя все это, кажется, ведет к документации Oracle, что неудивительно.