第 3 章 备份和恢复红帽目录服务器
使用命令行或 Web 控制台,备份红帽目录服务器数据库、配置文件和自定义架构文件。您还可以在实例离线或在线时恢复数据库。
3.1. 备份目录服务器 复制链接链接已复制到粘贴板!
Directory 服务器中的备份包含以下文件:
-
包含数据库索引属性的 LDIF 文件
dse_index.ldif -
包含实例配置属性的 LDIF 文件
dse_instance.ldif -
每个后端的目录,如
userRoot,其中包含数据库中定义的索引的.db文件 -
事务日志文件
log configured -
数据库版本文件
DBVERSION
请注意,Directory 服务器不支持备份单个数据库。
有关备份其他重要文件的详情,如配置,请参阅 备份配置文件、证书数据库和自定义架构文件。
与备份不同,您可以导出数据,如从目录服务器导出数据 中所述。使用导出功能从服务器导出特定数据,如子树,采用 LDIF 格式。
3.1.1. 在实例运行时使用命令行备份所有数据库 复制链接链接已复制到粘贴板!
要备份正在运行的 Directory Server 实例的所有数据库,请使用 dsconf backup create 命令。
当数据库从在线备份中恢复时,目录服务器会清理 changelog。因此,使用在线备份要求您在数据库恢复后重新初始化副本。要避免重新初始化,请使用离线备份。
先决条件
dirsrv用户在目标目录中具有写入权限。请注意,目录服务器默认使用自己的私有目录。因此,除非禁用了 PrivateTmp systemd 指令,否则将备份并导出到目录
/var/tmp/、/tmp/和/root/下。- 目录服务器实例正在运行。
流程
备份所有数据库:
# dsconf <instance_name> backup create The backup create task has finished successfully默认情况下,
dsconf将备份存储在 /var/lib/dirsrv/slapd的子目录中。要指定不同的位置,请在命令中附加目录名称。-<instance_name> /bak/name> /bak/ 目录中的名为 <instance_name>-YYYY_MM_DD_hh_mm_ss在备份过程中搜索
/var/log/dirsrv/slapd-<instance_name> /errors日志。要显示可用于备份数据的所有附加设置,请查看
dsconf < instance_name > backup create --help命令的输出。
3.1.2. 在实例离线时使用命令行备份所有数据库 复制链接链接已复制到粘贴板!
要在目录服务器实例离线时备份数据库,请使用 dsctl db2bak 命令。
先决条件
dirsrv用户在目标目录中具有写入权限。请注意,目录服务器默认使用自己的私有目录。因此,除非禁用了 PrivateTmp systemd 指令,否则将备份并导出到目录
/var/tmp/、/tmp/和/root/下。- 目录服务器实例没有运行。
流程
备份所有数据库:
# dsctl <instance_name> db2bak db2bak successful默认情况下,
dsctl db2bak将备份存储在 /var/lib/dirsrv/slapd__ 子目录中。要指定不同的位置,请在命令中附加目录名称。-<instance_name>/bak/ 目录中的 <instance_name>-YYYY_MM_DD_hh_mm_ss(可选)将
-v选项传给命令以显示详细输出:# dsctl -v <instance_name> db2bak ... DEBUG: Instance allocated DEBUG: systemd status -> True ... INFO: db2bak successful-
在备份过程中搜索
/var/log/dirsrv/slapd-<instance_name> /errors日志。 可选:启动实例:
# dsctl <instance_name> start
3.1.3. 使用 Web 控制台备份所有数据库 复制链接链接已复制到粘贴板!
目录服务器使用 Web 控制台支持数据备份。
当数据库从在线备份中恢复时,目录服务器会清理 changelog。因此,使用在线备份要求您在数据库恢复后重新初始化副本。要避免重新初始化,请使用离线备份。
先决条件
dirsrv用户在目标目录中具有写入权限。请注意,目录服务器默认使用自己的私有目录。因此,除非禁用了 PrivateTmp systemd 指令,否则
/var/tmp/、/tmp/和/root/目录下备份和导出会失败。- 在 web 控制台中登录到实例。
流程
- 单击 按钮,再选择 Manage Backups。
- 单击 。
- 输入备份的名称,如表示备份的创建日期和时间的时间戳。
- 单击 。
要在备份过程中检查日志是否有问题,请打开
菜单。 服务器将备份存储在
/var/lib/dirsrv/slapd- <instance_name> /bak/目录中输入名称的子目录中。
3.1.4. 备份配置文件、证书数据库和自定义架构文件 复制链接链接已复制到粘贴板!
当您在实例在线或离线时备份数据库时,目录服务器还会备份配置文件、证书数据库和自定义架构文件。dsconf backup create 和 dsctl db2bak 命令将文件备份到 /var/lib/dirsrv/slapd- <instance_name> /bak/<example_backup>/config_files/ 备份默认目录。您可能需要在硬件故障后在不同的服务器上恢复实例。
在备份过程中,请不要更新证书数据库。否则,此数据库在备份中可能不一致。
流程
- 在实例正在运行或离线时执行目录服务器 备份,如在实例正在运行或使用命令行 备份所有数据库 时,使用命令行备份所有数据库。
验证
在备份目录中查找备份的配置文件:
# ls /var/lib/dirsrv/slapd-<instance_name>/bak/<example_backup>/config_files/注意目录服务器不会自动恢复备份的配置文件。您需要手动恢复这些文件。