3.2. 恢复目录服务器


在某些情况下,例如在硬件故障后,您需要恢复目录服务器。您可以使用命令行或 Web 控制台进行此操作。请注意,目录服务器不支持恢复单个数据库。

当您要使用自定义数据填充数据库时,请使用导入功能。您可以使用 LDIF 格式从服务器导入特定数据。详情请参阅 将数据导入到目录服务器

要恢复正在运行的 Directory Server 实例上的所有数据库,请使用 dsconf backup restore 命令。

先决条件

  • 您有一个目录服务器备份。
  • dirsrv 用户在备份目录中具有读取权限。
  • 目录服务器实例正在运行。

流程

  1. 从存储在 /var/lib/dirsrv/slapd- <instance_name> /bak/ &lt;instance_name>-YYYY_MM_DD_hh_mm_ss 目录中的备份中恢复 所有数据库:

    # dsconf <instance_name> backup restore /var/lib/dirsrv/slapd-<instance_name>/bak/<instance_name>-YYYY_MM_DD_hh_mm_ss
    The backup restore task has finished successfully
    Copy to Clipboard Toggle word wrap
  2. 在恢复过程中搜索 /var/log/dirsrv/slapd-<instance_name> /errors 日志。

要在实例离线时恢复所有数据库,请使用 dsctl bak2db 命令。

先决条件

  • 您有一个目录服务器备份。
  • dirsrv 用户在备份目录中具有读取权限。
  • 目录服务器实例没有运行。

流程

  1. 从存储在 /var/lib/dirsrv/slapd- <instance_name> /bak/ &lt;instance_name>-YYYY_MM_DD_hh_mm_ss 目录中的备份中恢复 所有数据库:

    # dsctl <instance_name> bak2db /var/lib/dirsrv/slapd-<instance_name>/bak/<instance_name>-YYYY_MM_DD_hh_mm_ss/
    bak2db successful
    Copy to Clipboard Toggle word wrap

    (可选)将 -v 选项传给命令以显示详细输出:

    # dsctl -v <instance_name> bak2db /var/lib/dirsrv/slapd-<instance_name>/bak/<instance_name>-YYYY_MM_DD_hh_mm_ss/
    ...
    DEBUG: Instance allocated
    DEBUG: OK group dirsrv exists
    DEBUG: OK user dirsrv exists
    DEBUG: systemd status -> True
    ...
    INFO: bak2db successful
    Copy to Clipboard Toggle word wrap
  2. 在恢复过程中搜索 /var/log/dirsrv/slapd-<instance_name> /errors 日志。
  3. 可选:启动实例:

    # *dsctl <instance_name> start`
    Copy to Clipboard Toggle word wrap

3.2.3. 使用 Web 控制台恢复所有数据库

目录服务器支持使用 Web 控制台恢复数据。

先决条件

  • 备份存储在 /var/lib/dirsrv/slapd- <instance_name>/bak/ 目录中。
  • dirsrv 用户在备份目录中具有读取权限。
  • 在 web 控制台中登录到实例。

流程

  1. 单击 Actions 菜单,再选择 Manage Backups。显示的窗口列出了 /var/lib/dirsrv/slapd- <instance_name&gt; /bak/ 目录中的可用备份。
  2. 打开您要恢复的备份旁边的 Actions 菜单,然后选择 Restore Backup
  3. 单击 Yes 以确认。
  4. 要在恢复过程中检查日志是否有问题,请打开 Monitoring Logging Errors Log 菜单。

3.2.4. 恢复包含复制条目的数据库

当供应商服务器被恢复时,可能会出现几个情况:

  • 消费者服务器也被恢复。

    对于不太可能的情况,所有数据库都会从完全同时生成的备份中恢复(因此数据处于同步状态),用户仍与供应商同步,不需要执行其他操作。复制可在不中断的情况下恢复。

  • 只恢复供应商。

    如果只恢复供应商,或者消费者从不同时间生成的备份中恢复,请重新初始化供应商的消费者以更新数据库中的数据。

  • changelog 条目还没有在供应商服务器上过期。

    如果在进行数据库备份后,如果供应商的 changelog 尚未过期,则恢复本地消费者并继续正常操作。只有在备份时间超过为最大 changelog 年龄属性设置的值( nsslapd-changelogmaxage )在 cn=changelog,cn= <database_name > ,cn=ldbm database,cn=plugins,cn=config 条目中设置的值时才会出现这种情况。

    目录服务器自动检测副本及其更改日志之间的兼容性。如果检测到不匹配,服务器会删除旧的 changelog 文件,并创建一个新的空信息。

  • 自本地备份时间起,更改日志条目已在供应商服务器上过期。

    如果 changelog 条目已过期,请重新初始化消费者。

例 3.1. 恢复目录服务器复制拓扑

要恢复复制环境中的所有服务器,由两个供应商和两个消费者服务器组成:

  1. 使用恢复或导入重新初始化第一个供应商。
  2. 使用复制在线重新初始化剩余的服务器:

    1. 从第一个供应商初始化第二个供应商。
    2. 从供应商初始化消费者。
  3. 在每个服务器上,显示复制状态以验证复制是否正常工作。

在恢复操作过程中,与恢复的数据库关联的更改日志将被删除。将向供应商服务器的日志文件中记录一条信息,指示需要重新初始化该重新初始化。

您可以从备份中手动恢复配置文件、证书数据库和自定义架构文件。

先决条件

  • 您有一个目录服务器备份。
  • dirsrv 用户在 /var/lib/dirsrv/slapd- <instance_name> /bak/ backup 目录中具有读取权限。
  • 目录服务器实例没有运行。

流程

  1. 将您要从备份目录恢复到目录服务器配置目录的文件。例如,要恢复 dse.ldif 配置文件,请输入:

    # cp /var/lib/dirsrv/slapd-<instance_name>/bak/<example_backup>/config_files/dse.ldif /etc/dirsrv/slapd-<instance_name>/
    Copy to Clipboard Toggle word wrap
  2. 启动实例:

    # dsctl <instance_name> start
    Copy to Clipboard Toggle word wrap

验证

  • 验证服务器恢复了服务器配置:

    # dsconf <instance_name> config get
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat