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

Barman 1.4.0 发布

发布于 2015-01-26,作者 2ndQuadrant Italia

2015年1月26日: 2ndQuadrant 很荣幸地宣布 PostgreSQL 的备份与恢复管理器 Barman 1.4.0 版本发布。

这个主要版本引入了文件级增量备份,这是一种全量定期备份,仅保存目录中特定 PostgreSQL 服务器的最新全量备份的数据更改。根据具体情况和数据库负载,数据重复删除比例可能轻松达到每次全量备份的 50-70%,从而显著减少备份时间和磁盘空间占用。

PostgreSQL 9.4 用户将能无缝受益于 Barman 与 "pg_stat_archiver" 视图的集成。特别是,任何连续归档问题将通过 "barman check" 命令直接在源端立即发现。

WAL 文件的管理得到了改进,通过优化 WAL 统计信息的计算、将归档与备份关联,以及区分处理独占备份和并发备份的 WAL 垃圾回收。

在单元测试方面付出的巨大努力使代码更加健壮。一些小错误也得到了修复。

非常感谢 BIJ12 (www.bij12.nl)、Jobrapido (www.jobrapido.com)、Navionics (www.navionics.com)、Sovon Vogelonderzoek Nederland (www.sovon.nl) 和 Subito.it (www.subito.it) 对此版本的开发提供的资金支持。

有关更改的完整列表,请参阅下方的“发行说明”部分。

增量备份

增量备份是一种全量定期备份,它仅保存目录中特定 PostgreSQL 服务器的最新全量备份的数据更改。Barman 中增量备份的主要目标是:

  • 减少全量备份过程所需的时间
  • 减少多个定期备份占用的磁盘空间(数据重复删除

此功能高度依赖于 "rsync" 和 硬链接,因此必须得到底层操作系统和备份数据所在文件系统的支持。

核心理念是,两个定期基础备份将共享那些未更改的文件,从而在磁盘使用量上实现显著节省。这在 VLDB(非常大的数据库)场景中尤其如此,并且更普遍地适用于包含高比例只读历史表的数据库。Barman 通过一个名为 "reuse_backup" 的全局/服务器选项实现增量备份,该选项透明地管理 "barman backup" 命令。行为也可以通过 "barman backup" 命令的 "--reuse-backup" 运行时选项在运行时更改。

链接

发布说明

  • 通过 "reuse_backup" 全局/服务器选项实现增量基础备份。可能的值有 "off"(禁用,默认)、"copy"(防止传输未修改的文件)和 "link"(允许通过硬链接实现重复删除)。
  • 在使用 "reuse_backup=link" 时存储并显示重复删除效果。
  • 在 "check"、"show-server" 和 "status" 命令中添加了对 pg_stat_archiver (PostgreSQL 9.4) 的透明支持。
  • 在成功备份结束后调用 WAL 维护,改进了管理。
  • 更改了未使用的 WAL 文件的垃圾回收方式,区分了并发备份和独占备份情况。
  • 改进了 WAL 统计信息计算的性能。
  • 将缺少的 pg_ident.conf 视为警告而非错误。
  • 重构了输出层,移除了剩余的 "yield" 调用。
  • 检查 rsync 是否在系统路径中。
  • 在 WAL 管理中包含历史文件。
  • 通过更多的单元测试提高了健壮性。
  • 修复 bug #55:忽略目录上的 fsync EINVAL 错误。
  • 修复 bug #58:保留策略删除。

下载

关于

Barman(备份与恢复管理器)是一款用 Python 编写的开源 PostgreSQL 服务器灾难恢复管理工具。它允许您的组织在业务关键环境中对多个服务器进行远程备份,并在恢复阶段帮助 DBA。Barman 最受欢迎的功能包括备份目录、增量备份、保留策略、远程备份与恢复、WAL 文件和备份的归档与压缩。Barman 在 GNU GPL 3 许可下分发。