NetBackup™ for PostgreSQL 管理指南

Last Published:
Product(s): NetBackup & Alta Data Protection (10.1)

恢复还原

根据使用的 PostgreSQL 版本选择恢复工作流程。如果使用的是 PostgreSQL 版本 12 或更高版本,请直接转到 恢复 PostgreSQL 版本 12 或更高版本 部分。

恢复 PostgreSQL 版本 11 或更早版本

成功还原之后,要恢复还原,请将 recovery.conf.sample 文件复制到 PostgreSQL 数据目录。recovery.conf.sample 位于 PostgreSQL 安装目录。确保在复制恢复文件之后,删除 .sample 扩展名。

设置参数并重新启动 PostgreSQL 服务时,服务器将进入恢复模式并读取已存档的 WAL 文件。如果恢复终止,则可以重新启动服务器继续恢复过程。

成功完成之后,服务器将 recovery.conf 文件重命名为 recovery.done,以防重新进入恢复模式。

在 Linux 操作系统中,在成功还原之后,所有者和组默认为 postgres。您必须将所有权更改为 PostgreSQL 所有者并根据环境修改设置。

recovery.conf 配置文件

recovery.conf 文件包含必须设置才能启用存档恢复或充当复制备用的参数。必须再次为需要执行的后续恢复设置参数。

表:recovery.conf 文件参数列出了必须设置才能启用存档恢复的参数。

表:recovery.conf 文件参数

参数

描述

restore_command

此参数指定为从存档存储复制回日志文件而运行的 Shell 命令。此参数对于存档存储为必需,对于流复制为可选。命令字符串可能包含 %f(替换为所需日志文件的名称)和 %p(替换为要将该日志文件复制到的绝对路径)。

recovery_target

此参数在特定点停止前滚。默认情况下,恢复将前滚到 WAL 日志的末尾。

执行还原恢复

恢复还原

  1. 停止 PostgreSQL 服务。
  2. 将还原数据复制到 PostgreSQL 数据目录。
  3. (Linux) 将所有权更改为 PostgreSQL 用户。
  4. recovery.conf 文件复制到 PostgreSQL 数据目录并删除 .sample 扩展名。
  5. (Linux) 将所有权更改为 PostgreSQL 用户并根据环境修改设置。
  6. 编辑 recovery.conf 文件以设置以下内容:
    • (Windows) 将 restore_command 参数指定为 cp "<PostgreSQL-data-directory>\\pgarchive\\%f" "%p"

    • (Linux) 将 restore_command 指定为 cp <PostgreSQL-data-directory>/pgarchive/%f %p

    • 删除 pause_recovery_target 参数。

  7. 启动 PostgreSQL 服务。
  8. 成功恢复之后,删除 pgarchive 目录和 recovery.done 文件。
恢复 PostgreSQL 版本 12 或更高版本

如果使用的是 PostgreSQL 版本 12 或更高版本,请执行以下步骤。

恢复还原

  1. 停止 PostgreSQL 服务。
  2. 将还原数据复制到 PostgreSQL 数据目录。
  3. (Linux) 将所有权更改为 PostgreSQL 用户。
  4. (Windows) 将 restore_command 参数指定为 cp "<PostgreSQL-data-directory>\\pgarchive\\%f" "%p"
  5. (Linux) 将 restore_command 指定为 cp <PostgreSQL-data-directory>/pgarchive/%f %p
  6. 在 PostgreSQL 数据目录中创建名为 recovery.signal 的空文件。例如,# touch /<target_restored_directory>/recovery.signal
  7. (Linux) 将 recovery.signal 文件的所有权更改为 PostgreSQL 用户。例如:chown postgres:postgres /<PostgreSQL-data-directory>/recovery.signal
  8. 启动 PostgreSQL 服务。