- 论坛徽章:
- 0
|
原帖由 py 于 2007-4-4 21:16 发表
复制DB文件的做法是完全错误的,尤其在BDB版本不同的时候,很多的错误是不可预计的。尽量用slapcat&slapadd。如果是slapcat出来的就不会没有根节点。openldap的版本不同可能也有关系,openldap是不是能够启 ...
我曾经有试过在ES4上,把OpenLDAP降级到ES3的版本,也就是从2.2.13降级到2.0.27,方法是用rpm -e卸载掉所有的OpenLDAP的包,然后再安装对应的低版本的rpm包,测试结果表明,降级之后,直接复制DB文件也是可以使用的。
复制DB文件到ES4上,ldap可以成功启动。ldapsearch的结果是:
# ldapsearch -x "(objectclass=*)"
# extended LDIF
#
# LDAPv3
# base <> with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
如果是使用ldapsearch导出来的ldif来添加数据,会产生以下问题:
(64) value of naming attribute 'uid' is not present in entry
刚才想查一查什么问题,在openldap那找到一篇 http://www.openldap.org/lists/op ... 00607/msg00172.html
里面说到dn和attribute的值的一致性问题。
然后发现在我得LDAP里面,有一些类似这样的,因为机器名的改变而产生的改变:
dn: uid=icilszxpc09$,ou=PC,dc=ufreight,dc=com
cn: icilszxpc09$
sn: icilszxpc09$
……
uid: ICILSZXPC46$
当我修正: uid: icilszxpc09$ 之后就可以正常导入了。 原因是在ldapadd的时候添加了一些checking, 而uid和dn里面的不一致导致这样的问题。
One More Question: 如果是PC本身也在LDAP里面,看上就这种情况(不一致)是会经常出现的,是否有方法避免或者可以让LDAP做自我同步(同步uid和dn),或者有什么好的方法改善这种情况呢,谢谢。 |
|