之前写了一篇日志 openldap的安装备份与迁移 ,当时的情况是两台服务器都是centos5 ,属于同版本之间迁移 。而目前centos 6已经成为了主流,最近在做centos 5上的openldap向centos 6上面迁移时,发现以前的方法已经行不通了。查看了下两者之间的版本的区别 :centos 5 —-> OpenLDAP 2.3.43 centos 6 —-> OpenLDAP 2.4.23 。

找了下OpenLDAP 2.4的文档看了下,发现OpenLDAP 2.4.x下已废弃slapd.conf文件,而配置文件被目录slapd.d所取代 。slapd.d目录内包含的ldif文件中的内容,就是slapd.conf中的内容转化成ldif格式,以构成一棵根为cn=config的目录树,这棵树包含了许多结点,如:cn=include, cn=schema, olcBackend=hdb……。所有配置信息就是这些结点的属性。

至于以上做法的好处是:

  1. 通过Overlay截获修改这些目录属性的信息,然后对相应的数据结构进行修改,即目录服务器管理员可以像修改其它目录属性一样修改cn=config目录树下的目录信息,并且修改后即时生效,无需重启服务器。

2.目录服务器管理员不用像以前那样对服务器的配置文件进行修改,而是可以在任何能够连上目录服务器的地方对配置文件内容进行修改,没有地域的限制。

至于好处可以以后慢慢体会,先升上去再说。操作如下:

1、先从原机上器上备份

1slapcat -l ldapdate.20130828

2、将centos5上的data.ldif和/etc/openldap/slapd.conf拷贝到centos6(openldap2.4.x)上,然后进行如下操作:

 1root@svnldap:$ slapadd -l ldapdate.20130828 -f slapd.conf
 2bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap/361way.com: (2).
 3Expect poor performance for suffix "dc=361way,dc=com".
 4bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
 5*#################### 100.00% eta   none elapsed             26s spd  61.7 k/s
 6Closing DB...
 7#####想要查看详细消息,可以使用-v参数
 8root@svnldap:$ slaptest -f slapd.conf -F /etc/openldap/slapd.d/
 9root@svnldap:$ chown -R ldap:ldap /etc/openldap/slapd.d
10root@svnldap:$ chown -R ldap:ldap /var/lib/ldap/*
11root@svnldap:$ /etc/rc.d/init.d/slapd start

上面的警告可以不管,不过如果不提示,可以在以上操作之前增加如下操作:

1cp /usr/share/doc/openldap-servers-2.4.x/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
2chown ldap:ldap /var/lib/ldap/DB_CONFIG

参数手册:

OpenLDAP2.4管理员指南(中文)

OpenLDAP2.4管理员指南(官方英文)