原文:http://www.openldap.org/doc/admin24/replication.html
一、基础
OpenLDAP 复制基于syncrepl进程。它有两个角色。一个是provider,另一个是consumer。
以下是配置Provider与Consumer
Provider:
增加以下内容
#Add for repl
index objectclass,entryCSN,entryUUID eq #要注释系统原来的那一条。不能重复
moduleload syncprov.la
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
官方示例文档中,数据库用的是mdb,而且有maxsize。这是好大一个坑!!如果真这样配置,在通过LDAP Admin导入时,会循环导入。。。就是People下面有几十个People。只要增加以上内容即可
Consumer:
#增加以下
moduleload syncprov.la
syncrepl rid=002
provider=ldap://192.168.0.58:389
type=refreshOnly
interval=00:00:01:00 #一分钟同步一次
searchbase="dc=my-domain,dc=com"
filter="(objectClass=*)" #同步所有的条目,也可以指定条目
scope=sub
attrs="*" #同步所有的属性
schemachecking=off
bindmethod=simple
binddn="cn=Manager,dc=my-domain,dc=com" #provider的管理员
credentials=1234 #provider的管理员密码
其实这样就已经会同步了。Consumer会同步Provider的。
再配合在两台OpenLDAP服务器上安装keepalived+ipvsadm。就可以实现高可用了。
其他说明:
如果consumer因为provider停止时间过久,不同步了。可以把consumer的/var/lib/ldap/*下面的内容全删除。再启动consumer。就又会立即从provider中同步最新的内容。并保持同步关系