暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

为什么 PostgreSQL 17 的增量备份功能改变了游戏规则

通讯员 2024-09-26
60

随着 PostgreSQL17 将于 2024 年秋季发布,数据库社区对一项关键的新功能感到兴奋:增量备份。与传统的完整备份相比,这种增强功能有望实现更快、更小的备份,从而显著提高备份效率,具体取决于备份之间更改的数据量。Barman 3.11 引入了一个名为“资源节省”的指标,该指标显示了与完整集群大小(完整备份)相比,通过进行增量备份所节省的资源的估计值。

本博客深入探讨了为什么此功能会改变游戏规则,以及它如何适应全面的备份策略。

增量备份如何提供更大的灵活性

增量备份是有效数据库备份策略的基石。它们通过仅备份自上次备份以来更改的数据来提供灵活性和效率。这种方法可以节省时间和存储空间,使其成为许多组织的有吸引力的选择。PostgreSQL 17 中的增量备份功能将为用户提供更大的备份例程灵活性。例如,常见的备份计划可能包括每周一次完整备份、每日增量备份和连续预写日志备份。这种组合为许多场景提供了备份类型、保护和时间点可恢复性的组合。

通过增量备份将恢复时间缩短 95%

 EDB 支持的早期测试中,我们看到 PostgreSQL 的恢复时间有了显著改善,一次测试从 78 分钟缩短到仅 4 分钟,恢复时间缩短了近 95%。这种大幅减少的关键在于使用增量备份。

 以下是它的工作原理:

  • 完整备份与增量备份:完整备份会复制数据库中的所有内容,而增量备份仅捕获自上次备份以来所做的更改。
  • 恢复过程: 通过定期进行完整备份并在两者之间添加增量备份,您可以显着加快恢复过程。您无需重放上次完整备份中的所有数据更改 (WAL),而只需应用较小的增量更改。

这种方法表明,使用增量备份不仅可以节省时间,还可以使恢复过程更加高效。

增强典型备份计划

全面的备份计划对于维护数据完整性和可用性至关重要。通常,每周完整备份由每日增量备份和连续归档日志备份补充。此设置可确保数据可以恢复到备份保留期内的任何时间点。此外,每个数据库都必须具有明确定义和测试的 RTO(恢复时间目标)和 RPO(恢复点目标),以确保备份方案满足用户期望。PostgreSQL 17 中引入的增量备份增强了 Postgres 备份和恢复功能的灵活性和效率,可满足不同的组织需求。

 关键概念

了解 RTO 和 RPO 的重要性对于任何备份策略都至关重要。RTO 是指在发生故障后恢复数据库所需的时间,而 RPO 表示数据可能因事件而丢失的最长可容忍时间。PostgreSQL 17 中新的增量备份功能通过提供更高效的备份选项来支持这些目标,最重要的是,它可能更快地恢复。

 功能细分

增量备份功能结合了几个新功能,这些功能共同支持创建和还原增量备份。虽然这些新功能功能强大且令人兴奋,但它们仍被视为 “基元” — 大型备份策略的基本构建块。拥有关键 PostgreSQL 数据库的企业将需要开发软件来按计划自动备份、管理备份元数据、实施保留策略和简化还原操作,或者使用提供这些功能的备份工具。

 自动备份工具

Barman (Backup and Recovery Manager) 是一个 Postgres 备份工具,也是一个开源项目其贡献者来自全球各地。Barman 最初由 2nd Quadrant 开发,在 2020 年收购 2nd Quadrant 后由 EDB 维护, 为 Postgres 提供强大的备份和恢复解决方案。Barman 的主要功能包括支持多个 Postgres 服务器、轻松配置备份保留策略、备份压缩、WAL 存档和 WAL 流 (RPO=0) 以及灵活的还原选项。EDB 还为 Barman 提供 24/7 全天候技术支持,确保用户可以为他们最关键的应用程序找到经验丰富的 Postgres 专业人员。

 历史背景

Barman 是第一个提供增量备份的 PostgreSQL 备份工具,它使用 Linux 文件硬链接和 rsync 等创新技术进行文件级增量备份。这是当时 PostgreSQL 备份能力的重大增强。PostgreSQL 17 中的新增量备份功能 通过在 PostgreSQL 核心代码库中直接提供块级增量备份,扩展了早期的创新。 

 当前发展

EDB 的 Barman 开发团队一直在努力工作,以添加对 PostgreSQL 17 中新的增量备份功能集的支持。当 PostgreSQL 17 和 EDB Postgres Advanced Server 17 到来时,刚刚发布的 Barman 3.11 版本已经支持这些功能,为用户提供无缝过渡。您可以在此处阅读有关 Barman 3.11 如何支持增量备份的更多信息。 

Barman 的企业级功能,包括多服务器备份、备份压缩和综合报告,使其成为有效管理 Postgres 备份的宝贵工具。

 总结

PostgreSQL 17 中的增量备份功能代表了一次重大飞跃,为用户提高了备份效率和灵活性。

简而言之,您从增量备份中获得什么样的优势取决于您如何使用它。在某些情况下,您可以花更多时间进行备份并使用更多存储空间来缩短恢复时间,而在其他情况下,您可以接受更长的恢复时间,以节省存储空间和运行备份所花费的时间。Postgres 用户通过这项新功能获得了更多的控制和灵活性。

此功能与 Barman 的支持相结合,为管理 PostgreSQL 备份提供了强大的解决方案。我们期待看到这将对 PostgreSQL 社区产生的积极影响,并邀请大家与我们一起庆祝这一成就。感谢所有使这一切成为可能的贡献者。

致谢

PostgreSQL 17 中增量备份功能的开发是许多人辛勤工作和奉献的结果。特别感谢 EnterpriseDB 的首席数据库科学家 Robert Haas 以及审阅者和测试人员,他们花了一年多的时间确保该功能的成功集成。此外,我们还要感谢数据库工具工程总监 Martin Marques 和才华横溢的 EDB 开发人员,他们为支持 Barman 中的新功能集做出了贡献。他们的努力对 PostgreSQL 的备份和恢复功能产生了重大影响。


本博客由 David WagonerTim Boutin 合著。

文章转载自通讯员,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论