如何读取 slapd 的 Berkeley DB 日志文件?

如何读取 slapd 的 Berkeley DB 日志文件?

我在 Fedora 14 上运行 OpenLDAP slapd,我看到数据库目录中有一个log.0000000001文件。我希望能够读取此文件,因为我对最近发生的交易感兴趣。我该如何读取此文件?

答案1

对于常见的Berkeley 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_printlogOpenLDAP 读取 Berkeley 日志文件,您将收到以下错误:

db_printlog:程序版本 4.3 与环境版本不匹配 db_printlog:DB_EN​​V->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

答案2

不确定如何读取该文件,但你可以查看“最近”创建或修改的条目
ldapsearch "(|(createTimestamp>=20110927221035Z)(modifyTimestamp>=20110927221035Z))" dn creatorsName createTimestamp modifiersName modifyTimestamp

OpenLDAP 可以使用 syslog 工具来记录许多内容。不知道 Fedora 14 是否默认(或在您的环境下)这样做(或以何种详细程度这样做)。(您可能已经检查过这一点,因此可能不够。)

更详细地回答你的问题可以在这里找到http://www.openldap.org/faq/data/cache/738.html在链接失效之前。不过,这一切似乎都指向 Oracle 文档,这并不奇怪。

相关内容