免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3636 | 回复: 6
打印 上一主题 下一主题

[ldap] 从Redhat ES3 迁移 OpenLDAP 的数据到Redhat ES4的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-04 14:23 |只看该作者 |倒序浏览
本来公司用的是ES3, 在其上架构Samba+OpenLDAP服务器
当新建LDAP服务器的时候,当然OS还是ES3,我是直接把所有在/var/lib下面的DB文件,复制到新的服务器,并且把slapd.conf也复制过去,然后LDAP就可以正常使用

但是现在准备使用ES4,就碰到了一个问题,当我按照原来的方法把DB文件复制过去之后,用ldapsearch来作搜索,什么都搜索不到。也尝试过直接用slapcat到处到ldif文件,但是这样在slapadd之后 还是什么都找不到。

找过一些资料,有的说是root节点没有创建,我也试过,发现手动创建根结点之后还是不行

在ES3上用的是openldap 2.0.27, 在ES4上是2.2.13-4

大家帮忙看看是什么问题

论坛徽章:
0
2 [报告]
发表于 2007-04-04 18:36 |只看该作者
先确认你在 ES4 上的 openldap 跑起来后没有任何问题,再尝试导入 ldif 看看。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2007-04-04 21:16 |只看该作者
原帖由 tiamos 于 2007-4-4 14:23 发表
本来公司用的是ES3, 在其上架构Samba+OpenLDAP服务器
当新建LDAP服务器的时候,当然OS还是ES3,我是直接把所有在/var/lib下面的DB文件,复制到新的服务器,并且把slapd.conf也复制过去,然后LDAP就可以正常使用 ...

复制DB文件的做法是完全错误的,尤其在BDB版本不同的时候,很多的错误是不可预计的。尽量用slapcat&slapadd。如果是slapcat出来的就不会没有根节点。openldap的版本不同可能也有关系,openldap是不是能够启动?ldapsearch什么都没有是什么 ?不可能执行完以后没有任何提示信息的。

论坛徽章:
0
4 [报告]
发表于 2007-04-05 15:50 |只看该作者
9494

论坛徽章:
0
5 [报告]
发表于 2007-04-06 15:19 |只看该作者
原帖由 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),或者有什么好的方法改善这种情况呢,谢谢。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2007-04-06 22:37 |只看该作者
1。无论升级还是降级,使用2.0.*都是很不明智的。
2。复制DB文件的做法能够在一个例子中生效,并不能说明这是个好办法。另外,是否能够通过复制DB文件移植数据库,很大程度上取决于BDB的版本。
3。ldapsearch是search用的,不是用来导出ldif文件的,这样的导出和slapcat会有很大不同。
4。'uid'的那个问题可能是由于2.2和2.0的OpenLDAP的schema文件不同导致的。
5。你提到的这个连接中http://www.openldap.org/lists/op ... 00607/msg00172.html的ldif写法是不符合ldif文件规范的
dn: o=HotCoco, c=US
o: HotCoco.com
objectClass: organization
这样写的RDN是不正确的。
6。至于你说的避免出现生成不符合规范的LDIF文件的方法,应该是用slapcat来导出数据。看看slapcat会导出什么样的数据。

论坛徽章:
0
7 [报告]
发表于 2007-04-13 12:12 |只看该作者
PY說得很有道理。

樓主可以用這個軟件把ES3的LDAP數據導出來:Softerra LDAP Browser 2.6

然後再匯入到ES4裡。

DB的版本不同,會有意想不到的錯誤的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP