13.8. 备份和恢复证书证书证书nbsp;系统

CertificateCertificate Systemnbsp;System 不包括备份和恢复工具。但是,证书证书系统证书系统仍然可以被手动归档和恢复,如果证书或密钥信息丢失,则仍可访问信息的部署。CertificateCertificate Systemnbsp 的三个主要部分;在数据丢失或硬件故障时,需要定期备份系统:
  • 内部数据库。子系统使用 LDAP 数据库来存储其数据。目录服务器提供自己的备份脚本和程序。
  • 安全数据库。安全数据库存储证书和密钥资料。如果这些都存储在 HSM 中,请查阅 HSM 供应商文档来获取如何备份数据的信息。如果信息存储在实例 别名 目录中的默认目录中,则会使用 instance 目录进行备份。要单独备份,请使用 tarzip 等实用程序。
  • 实例目录.instance 目录包含所有配置文件、安全数据库和其他实例文件。这可以使用 tarzip 等实用程序备份。

13.8.1. 备份和恢复 LDAP 内部数据库

Red Hat Directory Server 文档 包含备份和恢复数据库的更多详细信息。

13.8.1.1. 备份 LDAP 内部数据库

可使用两个工具对备份 Directory 服务器实例;每个备份工具都有一个对应部分来恢复它生成的文件:
  • db2ldif 工具会创建一个 LDIF 文件,您可以使用 ldif2db 工具恢复。
  • db2bak 命令创建一个备份文件,您可以使用 bak2db 工具恢复。
13.8.1.1.1. 使用 db2ldif 备份
运行 db2ldif 命令可备份单个子系统数据库,如 -n 选项指定。
注意
db2ldif 命令使用 dirsrv 用户运行时,它不具有在 /root/ 目录下写入的权限,因此您需要提供可写入的路径。
  1. 备份 PKI 子系统使用的每个目录服务器数据库。您可以使用 pki-server ca-db-config-show 命令检查给定子系统的数据库名称。
    例如:
    # db2ldif -V -n pki-tomcat-CA -a /var/lib/dirsrv/slapd-pki1/ldif/pki-ca-backup.ldif
    Exported ldif file: /var/lib/dirsrv/slapd-pki1/ldif/pki-ca-backup.ldif
    ldiffile: /var/lib/dirsrv/slapd-pki1/ldif/pki-ca-backup.ldif
    [05/Nov/2020:10:17:53.835635923 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    [05/Nov/2020:10:17:53.845938266 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    [05/Nov/2020:10:17:53.851851787 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    [05/Nov/2020:10:17:53.874058831 -0500] - INFO - ldbm_back_ldbm2ldif - export pki-tomcat-CA: Processed 67 entries (100%).
    [05/Nov/2020:10:17:53.884181122 -0500] - INFO - dblayer_pre_close - All database threads now stopped
  2. 除了备份所有单独的子数据库外,您还可以通过添加 用户Root 作为 -n 选项备份主数据库。例如:
    # db2ldif -V -n userRoot -a /var/lib/dirsrv/slapd-pki1/ldif/userRoot.ldif
要使用 ldif2db 恢复 LDIF 文件,请参阅 第 13.8.1.2.1 节 “使用 ldif2db 恢复”
13.8.1.1.2. 使用 db2bak 备份
运行 db2bak 命令备份所有证书证书系统nbsp;该目录服务器的系统子系统数据库(以及由该目录服务器实例维护的任何其他数据库)。
例如:
# db2bak

Back up directory: /var/lib/dirsrv/slapd-pki1/bak/pki1-2020_11_05_11_20_21
注意
db2bak 命令以 dirsrv 用户身份运行时,目标目录必须可由 dirsrv 写入。运行不带任何参数的命令会在 /var/lib/dirsrv/slapd- <instance_name&gt; /bak 文件夹中创建备份,其中 db2bak 具有正确的写入权限。
要使用 bak2db 恢复 LDIF 文件,请参阅 第 13.8.1.2.2 节 “使用 bak2db 恢复”

13.8.1.2. 恢复 LDAP 内部数据库

根据您备份 Directory 服务器实例的方式,使用 ldif2dbbak2db 及对应的文件来恢复数据库。
注意
在恢复数据库前,请确定停止该实例。
13.8.1.2.1. 使用 ldif2db 恢复
如果您使用 db2ldif 创建 LDIF 文件,请停止 Directory 服务器实例,并使用 ldif2db 命令导入文件。您可以指定要从备份中恢复的单个数据库。例如:
  1. 停止 Directory 服务器实例:
    # systemctl stop dirsrv@instance_name
  2. -n 选项指定的子系统导入 -i 选项指定的文件:
    # ldif2db -V -n pki-tomcat-CA -i /var/lib/dirsrv/slapd-pki1/ldif/pki-ca-backup.ldif
    importing data ...
    [06/Nov/2020:09:27:07.103094925 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    [06/Nov/2020:09:27:07.118712207 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    ……...
    [06/Nov/2020:09:27:09.213947960 -0500] - INFO - import_main_offline - import pki-tomcat-CA: Closing files...
    [06/Nov/2020:09:27:09.470742715 -0500] - INFO - dblayer_pre_close - All database threads now stopped
    [06/Nov/2020:09:27:09.479321728 -0500] - INFO - import_main_offline - import pki-tomcat-CA: Import complete.  Processed 67 entries in 2 seconds. (33.50 entries/sec)
  3. 启动 Directory 服务器实例:
    # systemctl start dirsrv@instance_name
13.8.1.2.2. 使用 bak2db 恢复
如果您使用 db2bak 创建备份文件,请停止 Directory 服务器并使用 bak2db 命令导入文件;您可以指定单个数据库从备份中恢复。例如:
  1. 停止 Directory 服务器实例:
    # systemctl stop dirsrv@instance_name
  2. -n 选项指定的子系统导入文件:
    # bak2db /var/lib/dirsrv/slapd-pki1/bak/pki1-2020_11_06_09_40_21/ -n pki-tomcat-CA -V
    [06/Nov/2020:09:41:02.984808879 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    [06/Nov/2020:09:41:02.991860094 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    ......
    [06/Nov/2020:09:41:12.853686475 -0500] - INFO - dblayer_copy_directory - Restoring file 40 (/var/lib/dirsrv/slapd-pki1/db/pki-tomcat-CA/seeAlso.db)
    [06/Nov/2020:09:41:12.873881494 -0500] - WARN - dblayer_start - DB already started.
    [06/Nov/2020:09:41:12.883966616 -0500] - INFO - dblayer_pre_close - All database threads now stopped
    [06/Nov/2020:09:41:12.888381193 -0500] - INFO - dblayer_restore -  Removing staging area /var/lib/dirsrv/slapd-pki1/db/../fribak.
    您也可以使用 命令(不使用 -n 选项)从备份中恢复完整的数据库。例如:
    # bak2db /var/lib/dirsrv/slapd-pki1/bak/pki1-2020_11_06_09_40_21/ -V
    [06/Nov/2020:09:53:01.977785135 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    [06/Nov/2020:09:53:01.994426925 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    .........
    [06/Nov/2020:09:53:02.800340285 -0500] - INFO - dblayer_restore - Restoring file 68 (/var/lib/dirsrv/slapd-pki1/db/DBVERSION)
    [06/Nov/2020:09:53:02.814235053 -0500] - INFO - dblayer_copyfile - Copying /var/lib/dirsrv/slapd-pki1/bak/pki1-2020_11_06_09_40_21/DBVERSION to /var/lib/dirsrv/slapd-pki1/db/DBVERSION
    [06/Nov/2020:09:53:03.317071092 -0500] - INFO - dblayer_pre_close - All database threads now stopped
  3. 启动 Directory 服务器实例:
    # systemctl start dirsrv@instance_name