返回目录

实战:在隔离数据库中验证 PostgreSQL 备份

pg_dump 文件能列出目录,不代表恢复后应用一定正常。一次有效演练需要覆盖版本、扩展、角色、数据与业务查询,并与生产写入隔离。

<!-- more -->

## 准备相容且独立的环境

记录源数据库版本和扩展。优先使用匹配的备份工具,查阅跨版本支持说明。恢复目标应是新建测试库或独立实例,连接参数要显式核对,避免误连生产。

## 先检查归档目录

pg_restore --list 可以读取 custom 格式的目录。注意 schema、表、序列、约束与扩展是否符合预期。角色和所有权需求需要单独处理,不应为方便给测试账号过大权限。

## 恢复过程中保留错误

恢复到自己控制的空测试库,并使用 exit-on-error 及时停止。归档来自不可信来源时,恢复也可能执行其中的数据库代码。不要把生产连接密码留在命令行历史。

## 从结构走到业务验证

核对关键表数量、索引、约束和序列,再运行代表性只读查询。应用连接测试应禁用生产通知、定时任务与外部写入。记录未覆盖范围,不能只因页面打开就宣称完整恢复。

## 操作参考

```text
pg_restore --list backup.dump
# TEST_HOST 与 EMPTY_TEST_DB 必须是已确认的隔离目标
pg_restore --exit-on-error -h TEST_HOST -U TEST_USER -d EMPTY_TEST_DB backup.dump
```

示例占位符需替换为自己的环境。涉及生产服务时先保留备份,阅读命令用途后再执行。

## 参考资料

- [官方说明](https://www.postgresql.org/docs/current/app-pgrestore.html)
- [专题阅读路线](/topics/)