发布日期:2026-07-08;发布方:PDU PostgreSQL Data Unloader
PDU 通过重建元数据、导出表以及读取 WAL 来帮助恢复离线 PostgreSQL 数据库,并支持定向行级恢复。
当 PostgreSQL 实例无法启动时,常规 SQL 工具将不可用。PDU(PostgreSQL Data Unloader)就是面向这种场景的开源恢复工具。它直接读取 PostgreSQL 数据文件和 WAL 归档,不会修改原始数据目录。
PDU 可以在数据库离线时重建数据库、模式和表元数据。结构发现完成后,它可以通过一条命令导出单表、单个模式或整个数据库,输出为 CSV,便于检查恢复出的数据或重新导入另一个 PostgreSQL 实例。
对于误执行的 DELETE 和 UPDATE,PDU 也可以从 WAL 中恢复选定的行数据。这条恢复路径不依赖 VACUUM 前残留的元组,而是读取副本或 WAL 归档中可用的 WAL 记录,并据此重建被删除的行或更新前的行版本。因此,恢复窗口取决于 WAL 的可用性。
PDU 面向紧急恢复场景,并不能替代备份、PITR 或既有 PostgreSQL 恢复实践。
项目仓库:https://github.com/wublabdubdub/PDU-PostgreSQLDataUnloader
欢迎围绕 heap/TOAST 解析、离线元数据重建、WAL 解码、支持的数据类型和恢复边界情况提供反馈。
此文章已从旧版 PostgreSQL 网站迁移。对于迁移导致的任何格式问题,我们深表歉意。