OpenLDAP复制失败,“syncrepl_entry:rid = 666 be_modify失败(20)”

我已经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复制不起作用? 我设法通过slapcatslapadd把“手动”拷贝到数据库中,但我想自动同步。

更新: “解决”通过删除/var/lib/ldap/*和重新导入与slapadd的数据库。

你确定slapd有权利写dir吗? 通常,在从头开始插入之后,您必须更改目录的所有者。