最开始在虚拟机上装了个Redhat Enterprise linux 5系统(RHEL 5), 由于RHEL 5没有注册, 所以这个不能用在线安装的服务, 如yum命令,所以给安装openldap带来了好多麻烦, 安装了好久也没有成功,由于只是想学一下openldap的结构和原理, 不想在安装上花太多时间, 所以就安装了CentOS 5, 然后参照http://www.howtoforge.com/linux_openldap_setup_server_client很顺利地安装好了openldap, 花了些时间, 总算入门, 所以想玩点高级点的东东,因此想先玩玩主从同步,当然这必须得有两个服务器, 所以我把CentOS 5拷贝了一份, 然后用这个拷贝的新建了个虚拟机, 这样我想这两个CentOS肯定会是一模一样的了, 但这也带来些问题, 两个CentOS居然ip也一样了,而且它们都可以上网, 它们都是自动得到IP的, 不管怎么重起网络服务, 也还是一样的IP, 自己设定一个IP, 又不能上网, 这样就肯定不能搞主从同步了,没办法再把注意力转到RHEL5上来吧, 经过不懈的努力终于RHEL5上安装好了openldap, 于是把CentOS上的数据导入到了RHEL5上, 但主从同步又遇到了问题, 我按照官方网站(http://www.openldap.org/doc/admin24/replication.html#Configuring%20the%20different%20replication%20types)同步的第一种方法, 怎么也同步不了数据。用slapd -d 256启动主服务器, 发现在主服务器以收到了从服务器的同步请求, 但从服务就是接收不到更新的数据,现在也没找到是什么原因, 不知道是不是两个openldap版本不一样的原因, 因为CentOS上openldap版本是2.3.43 , 而RHEL5上的是2.4.16,由于第一种方法没有成功, 而且在网上好像也很难找到官方网站说的那些方法, 所以也没敢再去试其它的几种方法了, 去网上找找吧, 于是找到了这里http://blog.chinaunix.net/u2/65250/showart_1905561.html[这种方法在官方网站上并没有找到, 真是奇怪!]
我把CentOS当主服务器,slapd.conf配制如下:
replogfile /var/lib/ldap/openldap-master-replog
replica host=16.158.83.75:389
binddn=”cn=Manager, dc=my-domain,dc=com”
bindmethod=simple credentials=secret
RHEL5当从服务器 slapd.conf配制如下:
updatedn “cn=Manager, dc=my-domain,dc=com”
注:16.158.83.75为RHEL5IP
重启两个openldap, 在主服务器上修改了一个数据, 然后再到从服务器看了下, 发现终于成功从主服务器同步到了从服务器, 总算可以happy一下了,但同时还是存在一个问题, 按照http://blog.chinaunix.net/u2/65250/showart_1905561.html里说的: 在从服务器slapd.conf设置updateref 就可以把发送给从服务器的请求转发给主服务器, 我设置了并不行, 现在还不知道什么原因, 同时我也发现在我的slapd.conf里还有一个referral配制, 不知道referral和updateref有什么关系, 我的主要目的是实现主从同步, 这个目的已经实现, 至于其它的一些问题以后再去解决吧,如果哪位仁兄仁姐知道的话,给我留个言啊~~
—————————————————————–
关于referral 和updateref 在这里找到答案http://hi.baidu.com/%C4%C8%CE%F7%D0%A1%D1%FD/blog/item/c33475771337ef1eb051b981.html
1.1.7 referral
如果slapd没办法找到数据库的时候转到URI
1.3.10 updateref
仅对从库适用,设置从库一旦有改变,返回给client的URL。把改变转发给URI
—————————————————————–
excellent put up, very informative. I wonder why the other experts of this sector do not notice this. You must proceed your writing. I am sure, you have a huge readers’ base already!