我已经安装了两个带有 OpenLdap 服务器的 Ubuntu 系统,并按照本文所述让它们复制数据指导。复制成功,contextCSN 具有相同的输出 + 我仍然从消费者处找到原始提供商帐户。但是,当我开始向提供商添加用户时,问题就开始了。消费者 contextCSN 没有更新,我在两台机器上的系统日志中都发现了错误。
Provider:
Jun 23 15:11:13 ldap01 slapd[711]: findbase failed! 32
Jun 23 15:12:14 ldap01 slapd[711]: findbase failed! 32
Jun 23 15:12:14 ldap01 slapd[711]: connection_read(52): no connection!
Consumer:
Jun 23 15:11:13 ldap02 slapd[32562]: do_syncrep2: rid=001 LDAP_RES_SEARCH_RESULT (32) No such object
Jun 23 15:11:13 ldap02 slapd[32562]: do_syncrep2: rid=001 (32) No such object
Jun 23 15:11:13 ldap02 slapd[32562]: do_syncrepl: rid=001 rc -2 retrying
Jun 23 15:12:14 ldap02 slapd[32562]: do_syncrep2: rid=001 LDAP_RES_SEARCH_RESULT (32) No such object
Jun 23 15:12:14 ldap02 slapd[32562]: do_syncrep2: rid=001 (32) No such object
Jun 23 15:12:14 ldap02 slapd[32562]: do_syncrepl: rid=001 rc -2 retrying
Jun 23 15:13:14 ldap02 slapd[32562]: do_syncrep2: rid=001 LDAP_RES_SEARCH_RESULT (32) No such object
Jun 23 15:13:14 ldap02 slapd[32562]: do_syncrep2: rid=001 (32) No such object
Jun 23 15:13:14 ldap02 slapd[32562]: do_syncrepl: rid=001 rc -2 retrying
Jun 23 15:14:14 ldap02 slapd[32562]: do_syncrep2: rid=001 LDAP_RES_SEARCH_RESULT (32) No such object
Jun 23 15:14:14 ldap02 slapd[32562]: do_syncrep2: rid=001 (32) No such object
Jun 23 15:14:14 ldap02 slapd[32562]: do_syncrepl: rid=001 rc -2 retrying
Jun 23 15:15:14 ldap02 slapd[32562]: do_syncrep2: rid=001 LDAP_RES_SEARCH_RESULT (32) No such object
Jun 23 15:15:14 ldap02 slapd[32562]: do_syncrep2: rid=001 (32) No such object
Jun 23 15:15:14 ldap02 slapd[32562]: do_syncrepl: rid=001 rc -2 retrying
编辑:好的,找到了我的错误。忘记修复 provider_sync.ldif 中的这一行
olcRootDN: cn=admin,dc=example,dc=com
现在我不知道如何修复这个问题。可能的话,可能需要返回旧的数据库备份。
答案1
要修复 olcRootDN,请创建一个新文件 replace-olcrootdn.ldif
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: <admin DN>
此后,运行命令:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f replace-olcrootdn.ldif