5.2. 使用导出和导入方法迁移到目录服务器 11
使用导出和导入方法迁移 small Directory 服务器环境,如没有复制的实例。
流程
在现有 Directory Server 10 主机上:
停止并禁用
dirsrv
服务:#
systemctl stop dirsrv@instance_name
#systemctl disable dirsrv@instance_name
导出后端。例如,要导出
用户Root
后端并将其存储在/tmp/userRoot.ldif
文件中:#
db2ldif -Z instance_name -n userRoot -a /tmp/userRoot.ldif
将以下文件复制到您要安装 Directory Server 11 的新主机中:
- 您上一步导出的 LDIF 文件。
-
如果您使用自定义 schema,
/etc/dirsrv/slapd-instance_name/schema/99user.ldif
如果要迁移启用 TLS 的实例并重复使用 Directory Server 11 安装的同一主机名,请将以下文件复制到新主机:
-
/etc/dirsrv/slapd-instance_name/cert8.db
-
/etc/dirsrv/slapd-instance_name/key3.db
-
/etc/dirsrv/slapd-instance_name/pin.txt
-
- 如果要重复使用 Directory Server 11 主机上相同的主机名和 IP,请将旧服务器与网络断开连接。
在新主机上:
- 安装 Directory Server 11。详情请查看 第 2 章 设置一个新的 Directory 服务器实例。
另外,还可配置 TLS 加密:
如果新安装使用不同于 Directory Server 10 实例的主机名:
- 请参阅 Red Hat Directory Server Administrator Guide 中的 启用 TLS 章节。
要使用与之前目录服务器 10 安装相同的主机名:
停止实例:
#
systemctl stop dirsrv@instance_name
删除网络安全服务(NSS)数据库和 Directory 服务器的密码文件(如果它们已存在):
#
rm /etc/dirsrv/slapd-instance_name/cert*.db /etc/dirsrv/slapd-instance_name/key*.db /etc/dirsrv/slapd-instance_name/pin.txt
-
将您从 Directory Server 10 主机复制的
cert8.db
、key3.db
和pin.txt
文件存储在/etc/dirsrv/slapd-instance_name/
目录中。 为 NSS 数据库及密码文件设置正确的权限:
#
chown dirsrv:root /etc/dirsrv/slapd-instance_name/cert8.db /etc/dirsrv/slapd-instance_name/key3.db /etc/dirsrv/slapd-instance_name/pin.txt
#chmod 600 /etc/dirsrv/slapd-instance_name/cert8.db /etc/dirsrv/slapd-instance_name/key3.db /etc/dirsrv/slapd-instance_name/pin.txt
启动实例:
#
systemctl start dirsrv@instance_name
目录服务器自动将 NSS 数据库转换为 SQLite 格式。转换的数据库存储在
/etc/dirsrv/slapd-instance_name/
目录的cert9.db
和key4.db
文件中。(可选)删除旧的 NSS 数据库以避免混淆:
#
rm /etc/dirsrv/slapd-instance_name/cert8.db /etc/dirsrv/slapd-instance_name/key3.db
如果您使用了自定义模式,将
99user.ldif
文件恢复到/etc/dirsrv/slapd-instance_name/schema/
目录,设置适当的权限,再重启实例。例如:#
cp /tmp/99user.ldif /etc/dirsrv/slapd-instance_name/schema/
#chmod 644 /etc/dirsrv/slapd-instance_name/schema/99user.ldif
#chown root:root /etc/dirsrv/slapd-instance_name/schema/99user.ldif
#systemctl restart dirsrv@instance_name
导入 LDIF 文件。例如,要将
/var/lib/dirsrv/slapd-instance_name/ldif/migration.ldif
文件导入userRoot
数据库:#
dsconf -D 'cn=Directory Manager' ldap://server.example.com backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/migration.ldif
请注意,Directory 服务器需要您想在
/var/lib/dirsrv/slapd-instance_name/
目录中导入的 LDIF 文件。