我在 CentOS-5.4 上安装了 LDAP 主服务器,并且在另一台机器上安装了 LDAP,我想将其配置为 LDAP 从属服务器,但是当我导入 LDIF 文件或尝试在从属 LDAP 中创建任何新对象时出现以下错误:
LDIF 文本导入 无法添加对象 dc=transcomus,dc=com LDAP 说:服务器不愿意执行 错误号:0x35 (LDAP_UNWILLING_TO_PERFORM) 描述:LDAP 服务器拒绝执行该操作。
已检查 /var/lib/ldap 上不存在权限问题
任何帮助都非常感谢..
谢谢 Ramesh
答案1
在我看来,您正试图通过 或 来将数据库转储导入正在运行的从属服务器ldapadd
。slapcat
正在运行的 slapd 实例(其复制机制配置为从属模式)将拒绝所有写入尝试并返回您提供的消息。
如果我的基于 slurpd 的 slapd 服务器出现不一致的情况,我会执行一个相当直接的恢复程序:
- 将主机置于只读模式。
- 从主服务器制作一个新的转储并将其复制到任何不一致的从属服务器(或从备份中复制)。
- 完全停止您想要恢复的从属服务器上的 slapd。
- 清除数据目录的内容(如果 slapd.conf 中未定义参数,则
/var/lib/ldap
可能需要保存文件)DB_CONFIG
- 用于
slapadd
重建从属服务器上的目录(DB_CONFIG
如有必要,请移回) - 正常启动从属设备。
将主机切换回读写模式。
是的,我使用的是 slurpd 复制方法。它运行良好,但不知何故它崩溃了,直到那时它才开始工作
您可能正在运行 OpenLDAP 2.3.43,因为这是 CentOS 5.4 中打包的版本。不幸的是,除非您可以升级到较新的 OpenLDAP (2.4) 服务器,否则您将来可能还会再次遇到复制问题。
slurpd
非常有缺陷,看看OpenLDAP 2.4 文档以了解完整原因。较新的 OpenLDAP 版本附带一种名为 的新复制机制,syncrepl
该机制更加强大,几乎不会发生故障。
将来如果您有兴趣获得迁移到较新的 OpenLDAP 服务器的帮助,我也可以在那里提供指导。