2025年9月25日: PostgreSQL 18 发布!

pg_dumpbinary v2.5 发布

发布于 2021-09-09,作者 Gilles Darold
相关开源项目

加蓬,利伯维尔 - 2021 年 9 月 8 日

pg_dumpbinary

pg_dumpbinary 是一个用于以二进制格式转储 PostgreSQL 数据库的程序。转储后的数据必须使用此工具提供的 pg_restorebinary 进行恢复。

pg_dumpbinary 2.5 今日发布,此次新版本增加了对结构已更改的表的还原数据支持。

pg_dumpbinary 现在将为每个表创建一个名为 meta-schema.<tablename>.txt 的文件,该文件存储导出时表的列列表。还原时,pg_restore binary 会读取此文件(如果存在),或者从转储的 pre-data 部分获取目标列列表。目标列表将追加到 COPY FROM 命令中,以避免出现类似“ERROR: row field count is 28, expected 29”的错误消息。这对于具有更多列的已升级扩展的表,或者当您尝试仅将数据导入到具有更多列的现有表中时是必需的。

pg_dumpbinary 在某些情况下很有用

  • 您有 pg_dump 无法导出的 bytea,因为转义/十六进制输出的总大小超过 1Gb。
  • 您有一个自定义类型,它在 bytea 中内部存储 \0,但数据以 char/varchar/text 的形式返回,这会在 \0 之后截断数据。在这种情况下,pg_dump 将以输出类型导出数据,导致数据丢失。
  • 任何其他二进制格式可能很有用的情况。

如果您遇到上述情况,pg_dumpbinary 将通过以二进制格式转储 PostgreSQL 数据库来帮助您。在所有其他情况下,您必须使用 PostgreSQL 自带的 pg_dump/pg_restore 命令。

请参阅文档以获取功能的完整描述。

链接与致谢

pg_dumpbinary 是由 LzLabs GmbH 的一个开源项目。欢迎为构建更好的工具做出贡献。您只需通过 GitHub 工具发送您的想法、功能请求或补丁。

链接