
pgbackrest release/2.59.0
适用于 PostgreSQL 的并行备份与恢复解决方案,支持加密、增量恢复及多云对象存储,满足企业级灾难恢复需求。
pgBackRest
可靠的 PostgreSQL 备份与恢复
简介
pgBackRest 是一款可靠的 PostgreSQL 备份与恢复解决方案,可无缝扩展至最大的数据库和工作负载。
pgBackRest v2.59.1 是当前稳定版本。发行说明位于 Releases 页面。
如果您喜欢 pgBackRest,请在 GitHub 上给我们点个星标!
新闻
2026 年 8 月 17 日 - pgBackRest 2.59.1 发布
2026 年 7 月 20 日 - 新的发行版压缩包
2026 年 7 月 20 日 - pgBackRest 2.59.0 发布
功能特性
并行备份与恢复
压缩通常是备份操作期间的瓶颈,因此 pgBackRest 通过并行处理和更高效的压缩算法(如 lz4 和 zstd)解决了这一问题。
本地或远程操作
自定义协议允许 pgBackRest 通过 TLS/SSH 以最少的配置在本地或远程执行备份、恢复和归档。协议层还提供了查询 PostgreSQL 的接口,因此永远无需远程访问 PostgreSQL,从而增强了安全性。
多存储库
多存储库模式允许,例如,在本地配置一个保留期最短的存储库以实现快速恢复,并在远程配置一个保留期更长的存储库以实现冗余和企业级访问。
全量、差异与增量备份(文件或块级别)
支持全量、差异和增量备份。pgBackRest 不受 rsync 时间分辨率问题的影响,因此差异和增量备份无需对每个文件进行校验和即可安全执行。块级备份仅复制文件中已更改的部分,从而节省空间。
备份轮换与归档过期
可以为全量和差异备份设置保留策略,以覆盖任何时间段。WAL 归档可以为所有备份维护,也可以严格仅为最近的备份维护。在后一种情况下,使较旧备份保持一致所需的 WAL 将保留在归档中。
备份完整性
备份中的每个文件都会计算校验和,并在恢复或验证期间重新检查。备份完成文件复制后,会等待使备份保持一致所需的每个 WAL 段到达存储库。
存储库中的备份可以以标准 PostgreSQL 集群的相同格式存储(包括表空间)。如果禁用压缩并启用硬链接,则可以对存储库中的备份进行快照,并直接在快照上启动 PostgreSQL 集群。这对于以传统方式恢复非常耗时的 TB 级数据库尤为有利。
所有操作都利用文件和目录级别的 fsync 来确保持久性。
页校验和
如果启用了页校验和,pgBackRest 将验证备份期间复制的每个文件的校验和。全量备份期间会验证所有页校验和,差异和增量备份期间会验证已更改文件中的校验和。
验证失败不会停止备份过程,但会在控制台和文件日志中输出警告,其中包含具体哪些页面验证失败的详细信息。
此功能使得页级损坏能够在包含有效数据副本的备份过期之前及早被检测到。
备份续传
中断的备份可以从停止的位置继续。已复制的文件会与清单中的校验和进行比较以确保完整性。由于此操作可以完全在存储库主机上进行,因而减少了 PostgreSQL 主机上的负载并节省了时间,因为校验和计算比压缩和重新传输数据更快。
流式压缩与校验和
无论存储库位于本地还是远程,在文件复制到存储库的过程中都会以流方式执行压缩和校验和计算。
如果存储库位于存储库主机上,则压缩在 PostgreSQL 主机上执行,文件以压缩格式传输并直接存储在存储库主机上。当禁用压缩时,会采用较低级别的压缩,以便在高效利用可用带宽的同时将 CPU 开销降至最低。
增量恢复
清单包含备份中每个文件的校验和,因此在恢复期间可以使用这些校验和极大地加快处理速度。在增量恢复中,首先删除备份中不存在的任何文件,然后为剩余文件生成校验和。与备份匹配的文件将保留在原地,其余文件则照常恢复。并行处理可以显著缩短恢复时间。
并行、异步 WAL 推送与获取
包含用于将 WAL 推送到归档和从归档获取 WAL 的专用命令。两个命令都支持并行处理以加速执行,并以异步方式运行,为 PostgreSQL 提供尽可能快的响应时间。
WAL 推送会自动检测被多次推送的 WAL 段,当段完全相同时进行去重,否则会引发错误。异步 WAL 推送允许将传输工作卸载到另一个进程,该进程并行压缩 WAL 段以获得最大吞吐量。对于写入量极高的数据库来说,这可能是一个关键功能。
异步 WAL 获取维护一个本地 WAL 段队列,这些段已解压缩并准备好重放。这减少了向 PostgreSQL 提供 WAL 所需的时间,从而最大限度地提高了重放速度。高延迟连接和存储(如 S3)受益最大。
推送和获取命令都会通过比较 PostgreSQL 版本和系统标识符来确保数据库与存储库匹配。这几乎消除了错误配置 WAL 归档位置的可能性。
表空间与链接支持
完全支持表空间,恢复时可以将表空间重新映射到任何位置。也可以通过单个命令将所有表空间重新映射到一个位置,这对于开发环境的恢复非常有用。
支持 PostgreSQL 集群中任何文件或目录的文件和目录链接。恢复时,可以将所有链接恢复到其原始位置,重新映射部分或全部链接,或将部分或全部链接作为集群目录中的普通文件或目录恢复。
S3、Azure 和 GCS 支持
pgBackRest 存储库可以位于兼容 S3、Azure 和 GCS 的对象存储中,从而提供几乎无限的容量和保留能力。
加密
pgBackRest 可以加密存储库,无论备份存储在哪里都能确保其安全。
勒索软件与恶意软件防护
当存储库存储在支持版本控制的对象存储上时,pgBackRest 可以读取存储库在某个时间点的状态。如果备份因意外、恶意软件或勒索软件而被删除或损坏,可以使用目标时间来恢复损坏发生之前的数据。
兼容 S3、Azure 和 GCS 的对象存储支持版本控制。S3 的对象锁定以及 GCS 或 Azure 的软删除可以提供额外的防篡改保护。
兼容十个 PostgreSQL 版本
pgBackRest 支持十个 PostgreSQL 版本,包括五个受支持的版本以及最后五个 EOL 版本。这为升级到受支持的版本提供了充足的时间。
快速入门
pgBackRest 力求易于配置和操作:
赞助商
没有赞助商,pgBackRest 就不会存在:新功能、缺陷修复、贡献审查、社区支持和维护都需要大量时间。如果您在企业中使用 pgBackRest,请考虑赞助。
我们的赞助商:AWS、Supabase、pgEdge、Tiger Data、Percona、Eon、Xata、Dalibo、Data Egret。
我们感谢赞助商投资于惠及整个 PostgreSQL 社区的开源基础设施。
过往赞助商:Crunchy Data、Resonate。
贡献
我们始终欢迎对 pgBackRest 的贡献!请参阅我们的贡献指南,了解如何贡献功能、改进或问题报告。
支持
pgBackRest 在 MIT 许可下完全免费且开源。您可以将其用于个人或商业目的,不受任何限制。缺陷报告会得到非常认真的对待,并将尽快处理。请在此报告缺陷。
制定包含适当复制和备份策略的稳健灾难恢复策略可能是一项非常复杂且艰巨的任务。您可能会发现在架构阶段需要帮助,并需要持续支持以确保您的企业持续平稳运行。
我们的赞助商提供的产品和服务中包含 pgBackRest 支持,可以帮助满足您的灾难恢复需求。