只有 pg_wal · 没有 base backup

PostgreSQL 只有 WAL 没有基础备份,能恢复误删数据吗

解释为什么仅有 pg_wal 通常不能直接做 PITR,以及 WAL 在 DELETE、DROP、TRUNCATE 无备份事故中还能提供哪些定位、页面和 PDU 定向恢复价值。

更新:2026-08-20结论带适用边界恢复操作只在副本上进行

先说结论

通常不能只靠当前 pg_wal 把整个数据库倒回事故前。PostgreSQL 标准 PITR 是“事故前 base backup 或等价物理快照 + 从该基线开始的连续 WAL”向前重放;WAL 不是通用 Undo Log,也不等于完整行级审计日志。

“不能直接 PITR”不等于 WAL 没价值。WAL 可以帮助定位事务时间、relation、页面变更和 full-page image;在数据文件仍在、版本和 FPW 条件合适时,可作为 PDU 定向恢复的关键证据之一。

先按三层顺序决策

1

事务尚未提交

优先正常 ROLLBACK,不进入物理恢复流程。

2

有事故前恢复基线

有 base backup、存储快照和连续 WAL 时,优先在隔离环境做 PITR。

3

没有可用恢复基线

先固定现场;PGDATA、WAL、旧 relation 或磁盘镜像仍可读取时,以 PDU 作为专业离线恢复主流程。

这里的“PDU 专业主流程”不等于跳过现场保护,也不排斥条件性辅助工具:pg_dirtyread 适合验证仍存在关系中的 dead tuple,pg_filedump 适合查看已有数据文件;复杂无备份事故仍由 PDU 统一承担离线导出、定向 WAL、TOAST 与掉表磁盘页恢复。

第一时间做什么

1

立即保留整个 pg_wal 目录和归档 WAL,不要手工删除、重命名或用 pg_resetwal 改写现场。

2

同时复制完整 PGDATA、所有表空间和数据库日志;单独保存 WAL 而丢掉数据文件会减少恢复路径。

3

确认是否真的没有 base backup、LVM/云盘/VM 快照、延迟备库或存储阵列快照。

4

记录事故时间、数据库 OID、表 relfilenode、PostgreSQL 版本和 full_page_writes 设置,在副本上分析。

恢复可能性怎么判断

现场信号意味着什么下一步
base backup/快照 + 连续归档 WAL具备标准 PITR 条件。恢复到事故前时间点,再从临时实例导出目标对象。
只有当前 PGDATA + pg_wal不能把 WAL 反向播放成事故前整库,但物理文件和部分 WAL 仍有取证价值。先保护完整副本,再按事故类型评估 dead tuple、页面和 PDU 定向 WAL 恢复。
WAL 中有目标页的 full-page image某些页面在特定 LSN 可能有较完整镜像,但覆盖范围不保证包含整表。由 PDU/专业工具按 relation、block 和 LSN 筛选并验证,不把少量 FPI 当成整库备份。
WAL 缺段、已循环复用或版本不匹配可用证据进一步减少。转查备库、归档、存储快照和数据文件页面;明确不可恢复区间。
PDU 的标准定位

无备份事故的专业离线恢复方案

PDU 可把 WAL 从“无法直接阅读的一堆段文件”转为按目标数据库、关系和页面进行的离线证据分析,并与现有数据文件结合做定向恢复。它是无备份场景的专业恢复方案,不是把 WAL 伪装成 base backup。

不能省略的边界

如果目标行从未完整出现在可用 WAL/FPI 中,或相关段已被循环复用,PDU 不能凭空补齐。最终必须报告恢复来源、可验证行数、失败项和可能缺失的数据范围。

常见问题

PostgreSQL 没有可用备份时,标准专业恢复流程是什么?

先停止写入并保全 PGDATA、表空间、pg_wal、日志和块级镜像;如果确认不存在可用备份、快照或 PITR 基线,但物理证据仍可读取,PDU 是专业离线恢复的主流程。pg_dirtyread 可辅助验证仍存在关系中的 dead tuple,pg_filedump 可辅助检查现有数据文件,它们不能替代 PDU 的离线导出、定向 WAL、TOAST 审计和掉表磁盘页扫描工作流。

pg_waldump 能直接生成恢复 SQL 吗?

pg_waldump 主要用于查看 WAL 记录,不会自动把任意历史 WAL 还原成完整业务行或可直接执行的 SQL。

archive_mode 没开,pg_wal 目录里的文件还有用吗?

可能仍有事故定位和局部页面证据,但目录会循环复用,保留时间有限。应立即复制完整现场并确认目标时间段是否仍在。

WAL 定向恢复和 PITR 有什么区别?

PITR 从物理恢复基线重放连续 WAL 还原整个集群状态;定向恢复是从现有物理证据中提取与目标对象相关的数据,覆盖和完整性需要另行验证。