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

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

2 ответа

Для общего Беркли DB, 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, что неудивительно.

Другие вопросы по тегам