我如何克隆OpenLDAP的数据库

问题描述:

我知道这更像是比计算器问题上serverfault问题,但由于serverfault是没有起来,我来到这里:我如何克隆OpenLDAP的数据库

我应该从移动应用一台Redhat服务器到另一台服务器,并且对应用程序的内部工作没有很好的了解,我将如何将OpenLDAP数据库从一台机器移到另一台机器上,使用模式和全部。

我需要复制哪些文件?我相信这个设置非常标准。

SourceRebels回答的问题是,slapcat(8)不保证数据的订购为ldapadd(1)/ldapmodify(1)。从手册页:

 
The LDIF generated by this tool is suitable for use with slapadd(8). 
As the entries are in database order, not superior first order, they 
cannot be loaded with ldapadd(1) without first being reordered. 

加上使用采用后端文件的工具转储数据库,然后使用通过LDAP协议加载LDIF工具还不是很一致的。

我建议使用的slapcat(8)/slapadd(8)ldapsearch(1)/ldapmodify(1)的组合。我偏好后者,因为它不需要shell访问ldap服务器或移动文件。

例如,数据库转储从主服务器下DC =主人,DC = COM和在备份服务器

 
$ ldapsearch -Wx -D "cn=admin_master,dc=master,dc=com" -b "dc=master,dc=com" -H ldap://my.master.host -LLL > ldap_dump-20100525-1.ldif 
$ ldapadd -Wx -D "cn=admin_backup,dc=backup,dc=com" -H ldap://my.backup.host -f ldap_dump-20100525-1.ldif 

上述-W标志提示然而LDAP admin_master密码加载它,因为我们重定向输出到一个文件,你不会看到提示 - 只是一个空行。继续并键入您的ldap admin_master密码,并且它将起作用。在运行ldapadd之前,需要删除输出文件的第一行(输入LDAP密码:)。

最后一个提示,ldapadd(1)ldapmodify(1)的一个硬链接,打开了-a(add)标志。

+2

-Wx在重定向到文件时不适用于我。用-w 取代-Wx效果很好。 – 2012-01-23 00:13:00

+4

我不喜欢在命令行上放置密码,因为它们通常会在您的外壳历史记录中结束... – sberder 2012-02-07 06:20:58

一些约会:

  • 保存您的个性化模式和对象类的新服务器上定义。你可以看看你的包含文件在slapd.conf中获得它,例如(这是我的slapd.conf的一部分):

    包括/etc/ldap/schema/core.schema

  • 包括您的新的openLDAP安装中的个性化模式和对象类。

  • 使用slapcat命令将您的完整LDAP树导出到单个/各种ldif文件。

  • 使用ldapadd将ldif文件导入到您的新LDAP安装中。

+0

谢谢......问题是,我不记得工具的名称(slapcat) – elzapp 2009-04-27 10:35:03

+1

对于较新版本的OpenLDAP,您需要使用'slapadd' 'ldapadd'。 – 2011-11-02 23:07:25

我更喜欢通过协议复制数据库:

首先是要确保你有两台服务器上相同的模式。

-dump与ldapsearch的数据库:
ldapsearch的-LLL -wx -D “CN =管理员,DC =域” -b “DC =域”> domain.ldif

-and导入它在新服务器:
的ldapmodify -WX -D “CN =管理员,DC =域” -a -f domain.ldif

在ONELINE


ldapsearch的-LLL -WX -D“CN =管理员,DC =域“-b”dc = domain“| ldapmodify -w pass -x -D“cn = admin,dc = domain”-a

通过使用bin/ldap *命令,您可以在使用bin/slap *命令时直接与服务器通信后端文件

+3

我对如何“确保在两台服务器上具有相同的架构”感兴趣。我的任务是将现有的LDAP移至新的服务器,并且从未使用过openLdap。我怎样才能让架构镜像旧服务器,以便导入成功? – Ketema 2012-12-31 22:01:53

ldapsearch和ldapadd不一定是克隆LDAP数据库的最佳工具。 slapcat和slapadd是更好的选择。

导出与用于slapcat DB:

slapcat > ldif 

导入DB与slapadd(确保LDAP服务器已停止):

slapadd -l ldif 

谢谢,Vish。像魅力一样工作!我编辑的命令:

ldapsearch -z max -LLL -Wx -D "cn=Manager,dc=domain,dc=fr" -b "dc=domain,dc=fr" >/tmp/save.ldif 

ldapmodify -c -Wx -D "cn=Manager,dc=domain,dc=fr" -a -f /tmp/save.ldif 

刚刚添加的-z max,以避免大小限制和-c去,即使目标域已经存在(我的情况)。

(没有足够的信誉来写评论...)

的ldapsearch打开到LDAP服务器的连接。 Slapcat直接访问数据库,这意味着ACL连接,时间和大小限制以及LDAP连接的其他副产品不会被评估,因此不会更改数据。 (马特布彻,“掌握OpenLDAP”)