我们在 RHel 5.3 上运行 openldap 2.3.43。我们的 LDAP 服务器最近表现不稳定
1.当您发出命令 service ldap restart 时,它无法停止,但它“似乎”可以正常启动
2.然而,运行命令服务 ldap status 后,它显示 slapd 已停止
我查看了 ldap.log 文件,唯一值得一提的错误是
Jun 25 22:11:14 myldapserver slapd[11593]: daemon IPv6 socket() errno=7
Jun25 22:11:15 myldapserver slapd[11598]: bdb(cn=accesslog):file id2entry.bdb (meta pgno =0) has LSN [1}[900784]
Jun25 22:11:15 myldapserver slapd[11598]: bdb(cn=accesslog):end of log is [1][956]
Jun25 22:11:15 myldapserver slapd[11598]: bdb(cn=accesslog):/var/log/ldap/accesslog/id2entry.bdb:unexpected file or format
Jun25 22:11:15 myldapserver slapd[11598]: bdb_db_opendb_open(cn=accesslog):/var/log/ldap/accesslog/id2entry.bdb) failed: Invalid argument (22)
Jun25 22:11:15 myldapserver slapd[11598]: bdb(cn=accesslog):Unknown locker ID :0
Jun25 22:11:15 myldapserver slapd[11598]:
Jun25 22:11:15 myldapserver slapd[11598]: backend_startup_one: bi_db_open failed! (22)
Jun25 22:11:15 myldapserver slapd[11598]: bd_db_close: alock close failed!
Jun 25 22:11:15 myldapserver slapd[11598]: slapd stopped.
Jun 25 22:11:15 myldapserver slapd[11598]: connections_destroy: nothing to destroy.
任何帮助将不胜感激。
答案1
您在打开文件时遇到问题/var/log/ldap/accesslog/id2entry.bdb
,该文件是 ldap 数据库的一部分。
您可以尝试以下步骤:
1) 在正常情况下,ldap 的数据库位于 /var/lib/ldap 之类的位置(但我安装了 Ubuntu)。你没有更改数据库的目录吗(你可以在 /etc/ldap/slapd.conf 或 /etc/ldap/slap.d/* 中的某个位置看到它,它是一个名为的参数directory
)尝试搜索文件 id2entry.dbd 的真实位置并在配置文件的正确位置使用。
2) 您的文件 id2entry.dbd 是否可供 openldap 读写?请检查此文件的权限。
3)如果您的数据库位于正确的位置并具有适当的权限,请尝试使用此命令修复 ldap 的数据库:
/usr/sbin/slapd_db_recover -v -h /var/lib/ldap
(/var/lib/ldap 是放置 id2entry.dbd 文件的目录)。