我已经configuration了第二个主机来通过slapd.conf syncrepl复制主LDAP服务器:
syncrepl rid=666 provider=ldaps://my-main-server.com type=refreshAndPersist searchBase="dc=Staff,dc=my-main-server,dc=com" filter="(objectClass=*)" scope=sub schemachecking=off bindmethod=simple binddn="cn=repadmin,dc=my-main-server,dc=com" credentials=mypassword
当我重新启动slapd ,它会写入/var/log/debug
Jun 11 15:48:33 cluster-mn-04 slapd[29441]: @(#) $OpenLDAP: slapd 2.4.9 (Mar 31 2009 07:18:37) $ ^Ibuildd@yellow:/build/buildd/openldap2.3-2.4.9/debian/build/servers/slapd Jun 11 15:48:34 cluster-mn-04 slapd[29442]: slapd starting Jun 11 15:48:34 cluster-mn-04 slapd[29442]: null_callback : error code 0x14 Jun 11 15:48:34 cluster-mn-04 slapd[29442]: syncrepl_entry: rid=666 be_modify failed (20) Jun 11 15:48:34 cluster-mn-04 slapd[29442]: do_syncrepl: rid=666 quitting
我已经查看了返回码的来源,只发现
#define LDAP_TYPE_OR_VALUE_EXISTS 0x14
在include/ldap.h 。 无论如何,我不太明白错误信息的含义。
你能帮我debugging这个问题,并找出为什么LDAP复制不起作用? 我设法通过slapcat和slapadd把“手动”拷贝到数据库中,但我想自动同步。
更新: “解决”通过删除/var/lib/ldap/*和重新导入与slapadd的数据库。
你确定slapd有权利写dir吗? 通常,在从头开始插入之后,您必须更改目录的所有者。