LDAP 迁移到新的 LDAP 服务器

LDAP 迁移到新的 LDAP 服务器

我需要将我的 ldap 服务器移至较新的服务器。它当前在 Ubuntu 7.04 服务器上运行。有没有办法备份此服务器,在较新的 Ubuntu 11.04 服务器上安装全新的 openldap 服务器,并将旧数据库恢复到该服务器?

我尝试过备份到 LDIF 并将其还原到新的 openldap 服务器,但我猜它无法使用它来恢复配置。

任何帮助都值得赞赏,谢谢

答案1

您的配置应该只在一个文件中。在 7.04 上,我相信您有一个 /etc/ldap/ldap.conf,您的配置就在那里。您应该能够将配置文件移动到新系统,然后使用 -f 参数使用此配置文件启动 openldap,或者您也可以转换为使用动态后端,但由于增加了复杂性,您可能不想这样做。由于您能够使用 slapcat 转储内容并导入它们,因此唯一缺少的部分是您的配置文件。

答案2

您无法使用复制进行迁移,ubuntu 7.1 附带 openldap 2.2,但没有 syncrepl,只有 slurpd。Ubuntu 11 附带 openldap 2.4,有 syncrepl,但没有 slurpd。可以从 Openldap 2.2 在线迁移到 Openldap 2.3,也可以从 openldap 2.3 迁移到 Openldap 2.4,但绝对不能从 Openldap 2.2 迁移到 Openldap 2.4。

您需要备份您的 ldap 树并再次添加。

使用 ldapsearch 或 slapcat 在旧 LDAP 服务器系统上备份数据

$ldapsearch -x -LLL -b "dc=yourbase,dc=com" -D "cn=Manager,dc=yourbase,dc=com"  -W  >> mybackup.ldif

或者使用 slapcat,但确保在运行 slapcat 之前已停止 slapd。

$slapcat -l /tmp/backup.ldif 

将其导出到文件后,从备份文件中删除以下属性。如果使用 slapcat 方法。

entryUUID|creatorsName|structuralObjectClass|createTimestamp|entryCSN|modifiersName|modifyTimestamp| contextCSN

使用 ldapadd 命令导入 ldif 文件

$slapadd -F /etc/openldap/slapd.d/ -n 0 -l /tmp/backup1.ldif

对于在 ubuntu 7.1 中使用第三方架构文件的情况,将架构文件复制到 ubuntu11 后,如果发生任何架构违规,例如第三方架构文件中使用的 OID 可能与 ubuntu 11 的 OpenLDAP 版本不兼容,在这种情况下,请联系提供架构文件的供应商。

答案3

如果您从 32 位计算机迁移到 64 位计算机,OpenLDAP 的数据可能不兼容。我无法在 OpenLDAP 的文档中找到有关迁移数据过程的文档,但 Zimbra 文档可能会为您指明正确的方向:http://wiki.zimbra.com/wiki/Network_Edition:_Moving_from_32-bit_to_64-bit_Server

答案4

这个对我有用:

通过运行以下命令获取旧服务器上的数据副本:

ldapsearch -z max -LLL -Wx -D "cn=admin,dc=your,dc=domain" -b "dc=your,dc=base" > save.ldif

将文件移动到新服务器并通过运行以下命令导入:

ldapmodify -c -Wx -D "cn=admin,dc=your,dc=domain" -a -f save.ldif

相关内容