在此推荐一个openldap的双向备份的博客,整理的很到位,自己实践操作过:
http://blog.chinaunix.net/uid-261298-id-3345292.html
假设两台服务器的IP为:
A LDAP 10.0.0.1
B LDAP 10.0.0.2
首先我们需要满足如下条件:
一、保证A和B两台服务器里都配置的一样的根dc,比如我的是:dc=lhg,dc=com。
二、两边的管理帐户都有cn=root,dc=lhg,dc=com,密码都为111111。
三、保证目前AB两台服务器的数据完全一致。如果闲麻烦可以先导出所有数据,然后删除当作全新安装,待同步完成后从其中一台导入即可。
以上条件满足了后开始设置A的配置文件
修改A服务器的slapd.conf内容,增加如下:
# 设置唯一ID号
serverID 1
# 开启同步
overlay syncprov
# 设置从B服务器获取信息
syncrepl rid=001 <----和B服务器保持一致,告诉B现在和你是同一组。
provider=ldap://10.0.0.2:389 <----B服务器LDAP的IP及端口
type=refreshAndPersist <----设置为持续同步
searchbase="dc=lhg,dc=com" <----从B服务器同步dc=lhg,dc=com
schemachecking=on <----schema验证开启
bindmethod=simple <----密码验证为简单模式(即明文,此处你可以改为加密)
binddn="cn=root,dc=lhg,dc=com" <----使用cn=root,dc=lhg,dc=com用户进行读取(B服务器上必须有该用户)
credentials=111111 <----密码为111111
retry="60 +" <----重试为60秒,60和“+”之间必须有空格
#以上几个都是syncrepl的参数,可以考虑在一行里完成,我这里在最前面用一个TAB做了换行。
mirrormode on <----开启镜像模式
修改B服务器的slapd.conf内容,增加如下:
# 设置唯一ID号和A不能一样
serverID 2
# 开启同步
overlay syncprov
# 设置从B服务器获取信息
syncrepl rid=001 <----和B服务器保持一致,告诉A现在和你是同一组。
provider=ldap://10.0.0.1:389 <----A服务器LDAP的IP及端口
type=refreshAndPersist <----设置为持续同步
searchbase="dc=lhg,dc=com" <----从A服务器同步dc=lhg,dc=com
schemachecking=on <----schema验证开启
bindmethod=simple <----密码验证为简单模式(即明文,此处你可以改为加密)
binddn="cn=root,dc=lhg,dc=com" <----使用cn=root,dc=lhg,dc=com用户进行读取(A服务器上必须有该用户)
credentials=111111 <----密码为111111
retry="60 +" <----重试为60秒,60和“+”之间必须有空格
#以上几个都是syncrepl的参数,可以考虑在一行里完成,我这里在最前面用一个TAB做了换行。
mirrormode on <----开启镜像模式
设置完成后重启openldap。这时在A或者B服务器上添加删除任意数据都将相互同步。该模式不支持对两台服务器同时写操作。
我自己整理的在slap.conf文件中加入如下内容,重启opendlap即可:
# 设置唯一ID号
serverID 1
# 开启同步
overlay syncprov
# 设置从B服务器获取信息
syncrepl rid=001 provider=ldap://169.254.169.4:389 type=refreshAndPersist searchbase="dc=chinautrust,dc=com" schemachecking=on bindmethod=simple binddn="cn=Manager,dc=chinautrust,dc=com" cred
entials=password12345 retry="60 +"
mirrormode on