OpenLDAP启动失败:alock_recover failed问题求助
Windows版OpenLDAP重启后slapd无法启动的解决办法
从错误日志看,问题源于数据库非正常关闭后的恢复失败,同时缺少DB_CONFIG文件导致性能警告,以下是具体解决步骤:
1. 定位BDB数据库目录
打开slapd.conf配置文件,找到对应suffix "dc=my-domain,dc=com"的directory配置项,该路径即为数据库文件所在目录(通常是C:\OpenLDAP\data或自定义路径)。
2. 清理BDB锁定文件
Windows下BDB的锁定文件并非Linux下的alock,而是以__db.开头的文件(如__db.001、__db.002):
- 确保slapd进程已完全终止(可通过任务管理器确认)
- 进入数据库目录,删除所有
__db.开头的文件
3. 手动执行数据库恢复
OpenLDAP Windows版的bin目录下自带db_recover.exe工具,用于修复损坏的BDB数据库:
- 打开命令提示符,切换到数据库目录
- 执行恢复命令:
db_recover.exe -v
4. 添加DB_CONFIG文件(可选但推荐)
为避免性能警告并优化数据库性能,在数据库目录创建DB_CONFIG文件,写入以下内容(可根据服务器配置调整参数):
set_cachesize 0 268435456 0 set_lk_max_locks 10000 set_lk_max_objects 10000
5. 重新启动slapd
执行原启动命令测试:
C:\OpenLDAP>slapd -d 8 -h "ldaps://localhost:610/ ldap://localhost:389/" -f slapd.conf
内容的提问来源于stack exchange,提问作者Patrick29 Djomo
相关产品推荐
相关产品推荐

