使用cn = configconfigurationopenldap多主复制

我们目前有一个使用cn=config后端的OpenLDAP服务器。 我们想添加第二台OpenLDAP服务器,并将其configuration为多主机复制。 我们需要做些什么

  1. 启用现有服务器上的复制和
  2. 用现有数据初始化新的服务器

到目前为止,我所做的(遵循本指南 )是:

同步configuration

 dn:cn = config
 changetype:修改
replace:olcServerID
 olcServerID:1 ldap://foo.example.com
 olcServerID:2 ldap://bar.example.com
 - 
replace:olcSaslSecProps
 olcSaslSecProps:noanonymous

 dn:cn = module,cn = config
 changetype:修改
 olcModuleLoad:syncprov

 dn:olcDatabase = config,cn = config
 changetype:修改
 olcRootDN:cn = admin,cn = config
 olcRootPW:abc123
添加:olcSyncRepl
 olcSyncRepl:rid = 001 provider = ldap://foo.example.com bindmethod = simple
   binddn =“cn = admin,cn = config”credentials = abc123 searchbase =“cn = config” 
   type = refreshAndPersist retry =“5 5 300 5”timeout = 3
 olcSyncRepl:rid = 002 provider = ldap://bar.example.com bindmethod = simple 
   binddn =“cn = admin,cn = config”credentials = abc123 searchbase =“cn = config” 
   type = refreshAndPersist retry =“5 5 300 5”timeout = 3
 - 
添加:olcMirrorMode
 olcMirrorMode:TRUE

 dn:olcOverlay = syncprov,olcDatabase = config,cn = config
 changetype:add
 objectClass:olcOverlayConfig
 objectClass:olcSyncProvConfig
 olcOverlay:syncprov

这使configuration同步在两个方向上工作。

同步数据

 dn:olcDatabase = bdb,cn = config
 changetype:修改
添加:olcMirrorMode
 olcMirrorMode:TRUE
 - 
添加:olcSyncrepl
 olcSyncrepl:rid = 001 provider = ldap://foo.example.com searchbase = dc = example,dc = com binddn =“uid = ldapsync,ou =特殊帐户,dc = example,dc = com”credentials = xyz123
 olcSyncrepl:rid = 002 provider = ldap://bar.example.com searchbase = dc = example,dc = com binddn =“uid = ldapsync,ou =特殊帐户,dc = example,dc = com”credentials = xyz123

 dn:olcOverlay = syncprov,olcDatabase = bdb,cn = config
 changetype:add
 objectClass:olcOverlayConfig
 objectClass:olcSyncProvConfig
 olcOverlay:syncprov

我确认这些更改已同步到第二个服务器,并且ldapsync用户可以进行身份​​validation,并可以看到所需的所有数据。 但是,bdb数据似乎没有在任何方向上同步。 我错过了什么?

这个线程让我想到了olcMirrorMode定义需要放在olcSyncrepl行之后。 我停止了ldap服务器,并手动编辑了olcDatabase ldif文件。 这似乎已经得到了双向数据的复制。