debian

Debian PostgreSQL数据恢复实战案例

小樊
36
2025-12-25 01:11:29
栏目: 云计算

实战场景与恢复路径总览

场景 关键前提 首选方法 关键命令或要点
事务未提交 仍在同一个会话/事务中 直接回滚 在 psql 中执行 ROLLBACK;
已提交但未被 VACUUM 清理 表尚未发生自动清理 读取“已删除但未清理”的元组 安装并使用 pg_dirtyread 扩展导出到新表
已 VACUUM 但 WAL 含整页镜像 FPW 参数 full_page_writes=on 且 WAL 归档/保留完整 从 WAL 提取 FPW 并重建表页 pg_waldump --save-fullpage 提取,覆盖到表文件后用 pg_dirtyread 导出
有基础备份 + WAL 归档 已配置 WAL 归档 时间点恢复 PITR 配置 restore_commandrecovery_target_time 启动恢复
只有逻辑备份 pg_dump 导出 逻辑恢复 psql -f backup.sqlpg_restore
WAL 损坏/无归档且无法回滚 无备份、WAL 不可用 最后手段:pg_resetwal 仅作兜底,可能丢数据,务必先全量备份当前目录

以上路径按可行性排序,优先尝试事务回滚与 pg_dirtyread,其次利用 WAL/FPW,再到备份恢复,最后才是 pg_resetwal。


场景一 事务未提交


场景二 已提交但未被 VACUUM 清理


场景三 已 VACUUM 但 WAL 含整页镜像 FPW


场景四 有基础备份 + WAL 归档的时间点恢复 PITR


场景五 只有逻辑备份的恢复


场景六 WAL 损坏或无归档的最后手段 pg_resetwal


关键检查与常用命令清单


预防与运维建议

0
看了该问题的人还看了