5.2. 使用导出和导入方法迁移到目录服务器 11

使用导出和导入方法迁移 small Directory 服务器环境,如没有复制的实例。

流程

  1. 在现有 Directory Server 10 主机上:

    1. 停止并禁用 dirsrv 服务:

      # systemctl stop dirsrv@instance_name
      # systemctl disable dirsrv@instance_name
    2. 导出后端。例如,要导出 用户Root 后端并将其存储在 /tmp/userRoot.ldif 文件中:

      # db2ldif -Z instance_name -n userRoot -a /tmp/userRoot.ldif
    3. 将以下文件复制到您要安装 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
    4. 如果要重复使用 Directory Server 11 主机上相同的主机名和 IP,请将旧服务器与网络断开连接。
  2. 在新主机上:

    1. 安装 Directory Server 11。详情请查看 第 2 章 设置一个新的 Directory 服务器实例
    2. 另外,还可配置 TLS 加密:

      • 如果新安装使用不同于 Directory Server 10 实例的主机名:

        1. 请参阅 Red Hat Directory Server Administrator Guide 中的 启用 TLS 章节。
      • 要使用与之前目录服务器 10 安装相同的主机名:

        1. 停止实例:

          # systemctl stop dirsrv@instance_name
        2. 删除网络安全服务(NSS)数据库和 Directory 服务器的密码文件(如果它们已存在):

          # rm /etc/dirsrv/slapd-instance_name/cert*.db /etc/dirsrv/slapd-instance_name/key*.db /etc/dirsrv/slapd-instance_name/pin.txt
        3. 将您从 Directory Server 10 主机复制的 cert8.dbkey3.dbpin.txt 文件存储在 /etc/dirsrv/slapd-instance_name/ 目录中。
        4. 为 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
        5. 启动实例:

          # systemctl start dirsrv@instance_name

          目录服务器自动将 NSS 数据库转换为 SQLite 格式。转换的数据库存储在 /etc/dirsrv/slapd-instance_name/ 目录的 cert9.dbkey4.db 文件中。

        6. (可选)删除旧的 NSS 数据库以避免混淆:

          # rm /etc/dirsrv/slapd-instance_name/cert8.db /etc/dirsrv/slapd-instance_name/key3.db
    3. 如果您使用了自定义模式,将 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
    4. 导入 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 文件。