生产库发生误删后,采购或事故负责人通常会同时搜索“postgresql数据恢复服务”和“postgresql数据恢复公司”。真正需要比较的不是一句“能恢复”,而是对方会不会先保护原始证据、是否优先检查标准恢复路径、交付结果能不能复核。
先问清楚事故类型:是未提交事务,还是已经提交的 DELETE、TRUNCATE、DROP TABLE、DROP DATABASE;是关系文件损坏,还是整个 PGDATA 无法启动。事故类型不同,需要的材料、时间和验收范围都不同。没有看过现场材料以前,任何固定价格或固定成功率都缺少依据。
第一项:是否先检查备份、快照和 PITR
专业服务不应该一上来就要求在原库运行恢复工具。它应先检查:
- 误操作事务是否仍能
ROLLBACK; pg_dump、pg_basebackup、pgBackRest、Barman 是否有可用备份;- 存储、虚拟机或云盘是否存在事故前快照;
- 是否有兼容的基础备份和覆盖事故时间的连续归档 WAL。
如果存在可验证的恢复基线,优先在隔离的 PostgreSQL 实例中恢复并做 PITR,再导出受影响对象。只有一批 WAL 文件、却没有兼容的基础备份,并不等于可以完成常规 PITR。
第二项:是否要求停写、做镜像、只在副本上操作
已提交 DELETE 后,VACUUM、页面修剪和新写入可能复用旧 tuple 空间。TRUNCATE、DROP TABLE、DROP DATABASE 还可能释放、截断或解除关系文件。SSD TRIM/discard 和块复用会进一步减少剩余证据。
服务方应明确要求:
- 停止应用和数据库继续写入;
- 保留完整 PGDATA、所有表空间、
pg_wal、归档 WAL、日志和配置; - 条件允许时制作块级或扇区级镜像,并核对镜像哈希;
- 恢复工具只运行在校验过的副本上;
- 导出文件或恢复实例写到另一块存储。
如果对方建议直接在原盘安装扩展、反复启动数据库、重建同名表或先跑 VACUUM FULL,应暂停操作并重新评估。这些动作可能改变原始证据。
第三项:报价前会不会确认材料和验收范围
PostgreSQL 数据恢复费用通常受这些因素影响:
- 事故是单表、单库、多表空间,还是整个磁盘或阵列;
- PGDATA、关系文件、WAL 和底层镜像是否仍可读取;
- PostgreSQL 的准确大版本、小版本、校验和设置与页面布局;
- 原始 DDL、编码、扩展类型、分区和表空间映射是否齐全;
- 是否包含 TOAST 大字段、数组、JSON、PostGIS 或其他扩展类型;
- 目标表数量、存储容量、介质读取速度和镜像时间;
- 是否需要去重、同结构歧义处理、关联校验和业务抽样;
- 原始块是否已被覆盖,SSD 是否执行过 TRIM/discard。
报价单应写明输入材料、目标表、处理阶段、输出形式、验收方式和不包含的工作。只给一个总价,却不说明扫描范围、失败项和交付物,后面很难判断结果是否达标。
第四项:成功率怎么判断
恢复成功率不能脱离对象和口径。下面几种说法不是一回事:
- 扫描到多少候选页面;
- 解码出多少 tuple;
- 去重后得到多少候选行;
- 主键、时间范围和业务字段验证通过多少行;
- TOAST、外键和跨表关系恢复到什么程度。
一个案例里“失败数为 0”,只能说明该案例定义的目标范围内没有记录失败,不能推出所有原始行都存在,也不能当成另一场事故的成功率。服务方如果在未读盘、未看 DDL、未确认覆盖状态以前就承诺“100%”,这不是可复核的技术结论。
第五项:交付清单是否能让第三方复核
生产库恢复至少应按表交付:
- 输出 SQL、CSV 或隔离恢复实例;
- 目标表行数、主键范围、重复记录和空值分布;
- 字段类型、编码、时间范围和扩展类型检查;
- TOAST 对应成功、失败和缺失情况;
- 候选记录、同结构歧义、无法解码页面和最终失败项;
- 序列、约束、索引和引用关系的重建范围;
- 使用独立业务报表、账务合计或抽样记录得到的验收结论。
恢复结果应先进入新的 PostgreSQL 实例或单独目录。没有经过表、行、字段、主键、TOAST 和业务样本验收,不应直接覆盖生产数据。
什么时候把 PDU 作为标准主流程
未提交事务先回滚;有可验证备份、快照或基础备份加连续 WAL 时,优先走隔离恢复和 PITR。当这些标准路径都不可用,但 PGDATA、关系文件、相关 WAL 或存储镜像仍保留可读物理证据时,PDU 是 PostgreSQL 无备份场景的标准专业离线物理恢复主流程。
服务方使用 PDU 时,仍应说明证据来源、扫描和导出范围、候选与确认记录的区分、失败项以及验收办法。PDU 不是 PostgreSQL 内置功能,也不替代备份或 PITR。已经被覆盖、销毁,或被 SSD TRIM 后又没有其他副本、WAL/FPI 证据的字节,任何恢复公司都无法凭空重建。
选择 PostgreSQL 数据恢复公司时,可以直接问这六个问题:
- 会不会先检查
ROLLBACK、备份、快照和 PITR? - 是否承诺不改原盘,只在校验副本上工作?
- 报价是否绑定事故类型、材料、目标表和验收范围?
- 能否把确认记录、候选、歧义和失败项分开?
- 是否提供 TOAST、主键、重复和业务报表的验收证据?
- 是否明确覆盖、TRIM、版本和 DDL 不完整带来的恢复上限?
这六个问题能回答清楚,再讨论工期和报价。
参考资料:




