选择 打开 改范围 完整检索页

PDU:用于全库离线导出和定向 WAL 恢复的开源 PostgreSQL 数据卸载工具

发布于 2026-07-08
相关开源软件

原文:https://www.postgresql.org/about/news/pdu-an-open-source-postgresql-data-unloader-for-full-database-offline-export-and-targeted-wal-recovery-3335/

发布日期: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 的可用性。

当前能力

  • 离线发现 PostgreSQL 数据库、模式和表元数据。
  • 将单表、单个模式或完整数据库导出为 CSV。
  • 直接读取 PostgreSQL heap 和 TOAST 文件。
  • 基于 WAL 恢复被删除的行和更新前的行版本。
  • 支持目录损坏、误 DELETE/UPDATE、数据文件损坏等恢复场景。
  • 支持 PostgreSQL 14 到 18。

PDU 面向紧急恢复场景,并不能替代备份、PITR 或既有 PostgreSQL 恢复实践。

项目仓库:https://github.com/wublabdubdub/PDU-PostgreSQLDataUnloader

欢迎围绕 heap/TOAST 解析、离线元数据重建、WAL 解码、支持的数据类型和恢复边界情况提供反馈。

此文章已从旧版 PostgreSQL 网站迁移。对于迁移导致的任何格式问题,我们深表歉意。