13.8. 备份和恢复证书证书证书nbsp;系统
CertificateCertificate Systemnbsp;System 不包括备份和恢复工具。但是,证书证书系统证书系统仍然可以被手动归档和恢复,如果证书或密钥信息丢失,则仍可访问信息的部署。CertificateCertificate Systemnbsp 的三个主要部分;在数据丢失或硬件故障时,需要定期备份系统:
- 内部数据库。子系统使用 LDAP 数据库来存储其数据。目录服务器提供自己的备份脚本和程序。
- 实例目录.instance 目录包含所有配置文件、安全数据库和其他实例文件。这可以使用 tar 或 zip 等实用程序备份。
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/
目录下写入的权限,因此您需要提供可写入的路径。
- 备份 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
- 除了备份所有单独的子数据库外,您还可以通过添加
用户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> /bak
文件夹中创建备份,其中 db2bak 具有正确的写入权限。
要使用 bak2db 恢复 LDIF 文件,请参阅 第 13.8.1.2.2 节 “使用 bak2db 恢复”。
13.8.1.2. 恢复 LDAP 内部数据库
根据您备份 Directory 服务器实例的方式,使用
ldif2db
或 bak2db
及对应的文件来恢复数据库。
注意
在恢复数据库前,请确定停止该实例。
13.8.1.2.1. 使用 ldif2db 恢复
如果您使用
db2ldif
创建 LDIF 文件,请停止 Directory 服务器实例,并使用 ldif2db 命令导入文件。您可以指定要从备份中恢复的单个数据库。例如:
- 停止 Directory 服务器实例:
# systemctl stop dirsrv@instance_name
- 为
-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)
- 启动 Directory 服务器实例:
# systemctl start dirsrv@instance_name
13.8.1.2.2. 使用 bak2db 恢复
如果您使用
db2bak
创建备份文件,请停止 Directory 服务器并使用 bak2db 命令导入文件;您可以指定单个数据库从备份中恢复。例如:
- 停止 Directory 服务器实例:
# systemctl stop dirsrv@instance_name
- 为
-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
- 启动 Directory 服务器实例:
# systemctl start dirsrv@instance_name