我以这种方式配置了我的系统:主 OpenLDAP 10.100.1.6 和从属 OpenLDAP 10.100.1.7
我使用了这个指南: https://www.itzgeek.com/how-tos/linux/configure-openldap-master-slave-replication.html 并对其进行配置如下:
vim rpuser.ldif (Master and Slave)
dn: uid=rpuser,dc=mydomain,dc=com
objectClass: simpleSecurityObject
objectclass: account
uid: rpuser
description: Replication Admin User
userPassword: secret
ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f rpuser.ldif
Enable logging (Slave)
echo "local4.* /var/log/ldap.log" >> /etc/rsyslog.conf
systemctl restart rsyslog
vim /etc/default/slapd (Master)
SLAPD_SERVICES="ldapi:// ldap://LDAP01.mydomain.com"
vim /etc/default/slapd (Slave)
SLAPD_SERVICES="ldapi:// ldap://LDAP02.mydomain.com"
vim syncprov_mod.ldif (Master and Slave)
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov_mod.ldif
vim syncprov.ldif (Master and Slave)
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif
vim olcserverid.ldif (Master)
dn: cn=config
changetype: modify
add: olcServerID
olcServerID: 101
ldapmodify -Y EXTERNAL -H ldapi:/// -f olcserverid.ldif
vim olcserverid.ldif (Slave)
dn: cn=config
changetype: modify
add: olcServerID
olcServerID: 102
ldapmodify -Y EXTERNAL -H ldapi:/// -f olcserverid.ldif
vim rp.ldif (Slave)
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=101
provider=ldap://ldap01.mydomain.com:389/
bindmethod=simple
binddn="uid=rpuser,dc=mydomain,dc=com"
credentials=secret
searchbase="dc=mydomain,dc=com"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="30 5 300 3"
interval=00:00:05:00
ldapmodify -Y EXTERNAL -H ldapi:/// -f rp.ldif
该系统运行了几天,但现在不再同步。
这是 ldap.log
9 月 20 日 12:47:06 BCA-PRD-LDAP02 slapd[5348]: <= bdb_equality_candidates: (entryUUID) 未编入索引 9 月 20 日 12:47:06 BCA-PRD-LDAP02 slapd[5348]: do_syncrep2: rid=101 LDAP_RES_SEARCH_RESULT (4) 超出大小限制 9 月 20 日 12:47:06 BCA-PRD-LDAP02 slapd[5348]: do_syncrep2: rid=101 (4) 超出大小限制 9 月 20 日 12:47:06 BCA-PRD-LDAP02 slapd[5348]: do_syncrepl: rid=101 rc -2 正在重试(剩余 1 次重试) 9 月 20 日 12:52:06 BCA-PRD-LDAP02 slapd[5348]: <= bdb_equality_candidates: (entryUUID) 未编入索引
答案1
我找到了一个解决方案:
vim dbsyzelimit.ldif (主)
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSizeLimit
olcSizeLimit: 50000
ldapmodify -Y EXTERNAL -H ldapi:/// -f dbsyzelimit.ldif
答案2
我倾向于使用,而不是修改整个服务器olcLimits
。
通常我会使用 group 作为选择器,但 dn.exact 似乎是你想要的,至少目前如此。
dn.exact
例子:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcLimits: {0}dn.exact=uid=rpuser,dc=example,dc=com size=unlimited time=unlimited
group
例子:
$ldapsearch -b cn=config olcLimits=* olcLimits
dn: olcDatabase={0}config,cn=config
olcLimits: {0}group=cn=ldap-admins,ou=groups,dc=example,dc=com size=unlimited
olcLimits: {1}group=cn=ldap-servers,ou=groups,dc=example,dc=com size=unlimited time=unlimited
dn: olcDatabase={2}mdb,cn=config
olcLimits: {0}group=cn=ldap-admins,ou=groups,dc=example,dc=com size=unlimited
olcLimits: {1}group=cn=ldap-servers,ou=groups,dc=example,dc=com size=unlimited time=unlimited