返回目录实战:在隔离数据库中验证 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/)