9.3. 使用导出和导入方法将目录服务器 10 迁移到版本 12
使用导出和导入方法在没有复制的情况下迁移大型目录服务器环境或实例。
流程
在现有目录服务器 10 主机上执行以下步骤:
停止并禁用
dirsrv服务:# dsctl DS10_instance_name stop # systemctl disable dirsrv@DS10_instance_name导出后端。例如,要导出
userRoot数据库并将其存储在/tmp/userRoot.ldif文件中:# db2ldif -Z DS10_instance_name -n userRoot -a /tmp/userRoot.ldif将以下文件复制到新的目录服务器 12 主机上:
-
您在上一步中导出的 LDIF 文件
userRoot.ldif。 -
如果您使用自定义模式,
/etc/dirsrv/slapd-DS10_instance_name/schema/99user.ldif文件。 /etc/dirsrv/slapd-DS10_instance_name/dse.ldif配置文件。重要不要将 Directory Server 12 主机上的
dse.ldif配置文件替换为 Directory Server 10 主机上的文件,因为dse.ldif布局在版本之间有所变化。存储dse.ldif文件以备参考。如果要迁移启用了 TLS 并重复使用目录服务器 12 安装相同的主机名的实例,请复制:
-
/etc/dirsrv/slapd-DS10_instance_name/cert8.db -
/etc/dirsrv/slapd-DS10_instance_name/key3.db -
/etc/dirsrv/slapd-DS10_instance_name/pin.txt
-
-
您在上一步中导出的 LDIF 文件
- 如果要在 Directory Server 12 主机上使用相同的主机名和 IP,请断开旧服务器与网络的连接。
在新目录服务器 12 主机上执行以下步骤:
可选:配置 TLS 加密:
- 如果全新安装使用了与 Directory Server 10 实例不同的主机名,请参阅 保护 Red Hat Directory Server 文档中的启用 TLS 加密连接到 Directory Server 部分。
如果要使用与之前的目录服务器 10 安装相同的主机名:
停止实例:
# dsctl DS12_instance_name stop删除网络安全服务(NSS)数据库和目录服务器的密码文件(如果存在):
# rm /etc/dirsrv/slapd-DS12_instance_name/cert*.db /etc/dirsrv/slapd-DS12_instance_name/key*.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt-
将从 Directory Server 10 主机复制的
cert8.db、key3.db和pin.txt文件移动到/etc/dirsrv/slapd-DS12_instance_name/目录。 为 NSS 数据库和密码文件设置正确的权限:
# chown dirsrv:root /etc/dirsrv/slapd-DS12_instance_name/cert8.db /etc/dirsrv/slapd-DS12_instance_name/key3.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt # chmod 600 /etc/dirsrv/slapd-DS12_instance_name/cert8.db /etc/dirsrv/slapd-DS12_instance_name/key3.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt启动实例:
# dsctl DS12_instance_name start
如果您使用自定义模式,请将
99user.ldif文件放在/etc/dirsrv/slapd-DS12_instance_name/schema/目录中,设置适当的权限并重启实例:# cp /etc/dirsrv/slapd-DS10_instance_name/schema/99user.ldif /etc/dirsrv/slapd-DS12_instance_name/schema/ # chmod 644 /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif # chown root:root /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif # dsctl DS12_instance_name restart将您在
/var/lib/dirsrv/slapd-DS12_instance_name/ldif/目录中的/tmp/userRoot.ldif文件放在 Directory Server 10 主机上,并设置正确的权限:# cp /tmp/userRoot.ldif /etc/dirsrv/slapd-DS12_instance_name/ldif/ # chown dirsrv:dirsrv /var/lib/dirsrv/slapd-DS12_instance_name/ldif/userRoot.ldif导入
userRoot.ldif文件,以使用所有条目恢复userRoot后端:# dsconf -D 'cn=Directory Manager' ldap://server.example.com backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/userRoot.ldif请注意,目录服务器 12 只能从
/var/lib/dirsrv/slapd-DS12_instance_name/目录中导入 LDIF 文件。重要如果您在 Directory Server 10 主机上使用了自定义配置,请不要将 Directory Server 12 主机上的
dse.ldif配置文件替换为之前版本中的文件。反之,使用dsconf工具或 Web 控制台为每个所需的参数和插件手动添加自定义配置。