使用脚本备份和还原 PostgreSQL 数据库

以下脚本可用于执行 PostgreSQL 数据库的备份。运行脚本时,不必停止数据库就可执行备份。

先决条件

开始备份之前,请确保执行以下操作:

注意:要应用设置,请在 postgresql 文件中配置这些设置后重新启动服务器。

以下命令用于在系统重新启动后检查存档模式的状态:

应用脚本

请按下列步骤操作:

  1. 解压缩 LinuxPostgres.zip,其包含以下四个文件:postgresql_backup_pre.sh、postgresql_snapshot_post.sh、postgresql_settings、postgresql_backup_post.sh
  2. 将文件从 pre/post backup/snapshot 复制到 Linux 备份服务器上的以下路径:/opt/Arcserve/d2dserver/usr/prepost。
  3. 将 postgresql_settings 复制到源路径 /root/backup。
  4. 请确保在 postgresql_settings 中检查为变量设置的所有值,并根据您的环境进行所需的任何更改。
  5. 从 UDP 控制台配置计划,并选择 PostgreSQL 节点作为源。
  6. 确认备份状态。要了解 PostgreSQL 备份的状态,请检查 arcserve_postgresql_backup_${DATE}.log 文件。该日志文件创建于由用户设置的目录下。有关配置目录的详细信息,请参阅 postgresql_settings 文件。

还原 PostgreSQL 数据库

请按下列步骤操作:

  1. 停止数据库服务器。
  2. 要还原原始位置,请执行以下操作:
    1. 从当前 /data 文件夹中删除文件和目录。
    2. 对整个 /data 文件夹执行还原。
  3. 从 /data 文件夹完成还原后,从以下文件夹删除文件:
  4. 转到为 WAL 存档配置的文件夹,并执行以下操作:
    1. 删除位于已还原 pg_wal 目录中的文件,该目录包含备份过程中执行的事务的相关信息。
    2. 现在,为了实现数据一致性和时间点恢复,将文件从用户定义的存档位置复制到 pg_wal 文件夹。
  5. 启动数据库服务器。

还原到同一服务器上的备用位置

  1. 停止数据库服务器。
  2. 运行 PGDATA,以将其配置为“new_data_directory_path”。
  3. 使用 `Initdb` 命令初始化新创建的数据库。
  4. 从当前 /data 文件夹中删除文件和目录。
  5. 对整个 /data 文件夹执行还原。
  6. 从 /data 文件夹完成还原后,从以下文件夹删除文件:
  7. 转到为 WAL 存档配置的文件夹,并执行以下操作:
    1. 删除位于已还原 pg_wal 目录中的文件,该目录包含备份过程中执行的事务的相关信息。
    2. 现在,为了实现数据一致性和时间点恢复,将文件从用户定义的存档位置复制到 pg_wal 文件夹。
  8. 启动数据库服务器。
  9. 注意:请确保在更新 PGDATA 的会话中执行数据库启动。

限制

如果为 PostgreSQL 数据库配置了非默认端口,上述脚本将无法用于执行备份。这些脚本仅适用于默认端口号 5432。

作为变通,请使用以下建议手动修改 postgresql_backup_pre.sh 和 postgresql_snapshot_post.sh 脚本: