实现LDAP的主主复制

 现有两台机器,分别是ldap-1.example.com和ldap-2.example.com,
 已经分别按照http://yang8787jie-126-com.iteye.com/admin/blogs/671693安装了端口为389的sun-ldap实例。
 现按照下面的步骤实现在两个实例间的主主复制,即修改任何一个实例中的数据,另一个实例中的数据同样会被修改。

 
 以下命令在机器ldap-1.example.com上进行操作:
 步骤一:
使用以下命令看是否已经配置了允许LDAP实例主主复制,
#./dsconf  list-suffixes -p 389 -v
SUFFIX_DN            entry-count  repl-role       repl-agmts  repl-priorities  indexes  encr-attrs 
-------------------  -----------  --------------  ----------  ---------------  -------  ---------- 
dc=zju,dc=edu,dc=cn          402  not-replicated         N/A              N/A       29           0

如果repl-role=not-replicated,则表示既没有启用主主复制也没有启用主从复制。
如果repl-role=consumer,表示已经启用主从复制,则需要先删除主从复制的设置,
使用命令./dsconf disable-repl -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn进行删除。
当然也可以使用升级命令或降级命令来实现,
详见dsconf的参数详见http://docs.sun.com/app/docs/doc/820-2767/dsconf-1m?l=zh_TW&a=view。


#./dsconf enable-repl -h ldap-1.example.com -p 389 -d 3891 master dc=zju,dc=edu,dc=cn
上面命令中-d后面跟的是REPL_ID的值,范围是1到65534,并且特别注意,绝对不能跟ldap-2.example.com上设置的REPL_ID相同。

否则,会出现如下情况:

[

[root@localhost bin]# ./dsconf init-repl-dest -h localhost -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389
Enter "cn=Directory Manager" password: 
Initialization of "ldap-2.example.com:389" failed
Server exit code: "810"
Server exit message: "Replication error initializing replica: Total update failed - Cons and supp RUV match"
The "init-repl-dest" operation failed on "localhost:389".

]
#./dsconf  list-suffixes -p 389 -v
 步骤三:
为LDAP实例修改复制管理器的密码:
#echo replmanager > pwd.txt
#cat pwd.txt
#./dsconf set-server-prop -h ldap-1.example.com -p 389 def-repl-manager-pwd-file:pwd.txt
 步骤五:
 为每个LDAP实例创建复制协议:
#./dsconf list-repl-agmts -h localhost -p 389 -v dc=zju,dc=edu,dc=cn
#./dsconf create-repl-agmt -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389
#./dsconf list-repl-agmts -h localhost -p 389 -v dc=zju,dc=edu,dc=cn
 步骤七:
 初始化LDAP实例的复制协议:
#./dsconf show-repl-agmt-status -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389
#./dsconf init-repl-dest -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389

上面的命令运行后, 机器ldap-2.example.com上的389实例将被初始化跟 ldap-1.example.com上389实例一样
#./dsconf show-repl-agmt-status -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389
 步骤九:
 验证主主复制是否已经成功工作:
#cd /ldap/install/dsrk6/bin
#./ldapmodify -a -h ldap-1.example.com -p 389 -D cn=admin,cn=Administrators,cn=config -w admin123

dn: ou=test,dc=zju,dc=edu,dc=cn
objectclass: top
objectclass: organizationalUnit
ou: test
description: Container for user entries
每输入一行,按回车键进入下一行的输入,全部输入完毕后,按2次回车,再按ctrl+c确定并退出。


 以下命令在机器ldap-2.example.com上进行操作
 步骤二:
#./dsconf  list-suffixes -p 389 -v
#./dsconf enable-repl -h ldap-2.example.com -p 389 -d 3892 master dc=zju,dc=edu,dc=cn
#./dsconf  list-suffixes -p 389 -v
 步骤四:
#echo replmanager > pwd.txt
#cat pwd.txt
#./dsconf set-server-prop -h ldap-2.example.com -p 389 def-repl-manager-pwd-file:pwd.txt
 步骤六:
#./dsconf list-repl-agmts -h localhost -p 389 -v dc=zju,dc=edu,dc=cn
#./dsconf create-repl-agmt -h ldap-2.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-1.example.com:389
#./dsconf list-repl-agmts -h localhost -p 389 -v dc=zju,dc=edu,dc=cn
 步骤八:

#./dsconf show-repl-agmt-status -h ldap-2.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-1.example.com:389

#./dsconf init-repl-dest -h ldap-2.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-1.example.com:389
#./dsconf show-repl-agmt-status -h ldap-2.example.com -p 389 dc=zju,dc=edu,dc=cn
ldap-1.example.com:389

 步骤十:
 用以下命令查看新创建的实体是否已经复制过来:
#cd /ldap/install/dsrk6/bin
#./ldapsearch -b "dc=zju,dc=edu,dc=cn" -p 389 -D "cn=Directory Manager" -w admin123 "objectclass=organizationalUnit"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值