【DB吐槽大会】第37期 - PG 没有block级增量备份恢复

简介: 大家好,这里是DB吐槽大会,第37期 - PG 没有block级增量备份恢复

背景


1、产品的问题点

  • PG 没有block级增量备份恢复

2、问题点背后涉及的技术原理

  • PG的备份包括2种, 1种是全量数据文件+WAL归档日志增量备份, 支持按时间点还原.
  • 还原时需要全量数据文件+自从备份开始到恢复到的目标时间点的所有WAL
  • 另一种是逻辑备份, 支持表级别的备份粒度, 不支持增量备份, 只能恢复到备份集的状态, 不支持按时间点还原.
  • block级增量备份指的是: 只备份自从上一次备份以来修改过的数据块, 适合全量数据文件备份的加速. PG社区版本暂时不支持该功能.
  • block 级的增量备份可以减少全量数据文件备份的次数.

3、这个问题将影响哪些行业以及业务场景

  • 通用

4、会导致什么问题?

  • 按时间点还原数据库时需要全量数据文件+自从备份开始到恢复到的目标时间点的所有WAL, 恢复速度取决于有多大的数据文件, 以及有多少wal日志.
  • 为了保障时间点还原的SLA, 我们必须提高全量数据文件备份的频率, 从而减少需要回放的wal个数, 从而提高PITR恢复速度.
  • 问题1: 备份需要更大的存储空间.
  • 问题2: 频率不可能无限提高, 对于特别大的数据库实例, 例如1天都备份不完, 那么备份频率就不能到每天一次, 因为上一次备份还没有完成, 新的备份又发起了.
  • 问题3: 增加备份库的负担, 因为备份要读区数据文件, 拷贝数据文件, 增加了网络、IO开销.

5、业务上应该如何避免这个坑

  • 使用ZFS的快照功能代替拷贝数据文件
  • 使用 pg_rman第三方备份工具, 支持数据文件的block级别增量备份和恢复.
  • pg_probackup第三方备份工具, 支持数据文件的block级别增量备份和恢复.

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 不是PG社区原生功能, 品质、持续性无法保障.
  • 管理复杂度增加

7、数据库未来产品迭代如何修复这个坑

  • 希望PG社区版本原生支持
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
缓存 JavaScript 前端开发
SpringBoot——Thymeleaf中的th:inline(内敛文本text、内敛脚本javascript)
SpringBoot——Thymeleaf中的th:inline(内敛文本text、内敛脚本javascript)
2619 0
SpringBoot——Thymeleaf中的th:inline(内敛文本text、内敛脚本javascript)
|
Java
SpringBoot文件上传单文件多文件上传
SpringBoot文件上传单文件多文件上传
266 0
|
12月前
Scanpy 单细胞分析:Pearson残差处理计数数据
Scanpy 单细胞分析:Pearson残差处理计数数据
|
边缘计算 监控 搜索推荐
301重定向:技术原理、架构级策略与搜索引擎的隐秘对话
本文深入解析HTTP状态码301“永久重定向”的技术细节与实践应用,探讨其在浏览器、爬虫及服务器端的行为特性。内容涵盖Nginx与CDN边缘计算实现高效重定向的方案,权重传递衰减机制,以及大规模网站迁移的技术框架。同时,文章还介绍了HTTP/3时代的创新优化,如0-RTT跳转和服务端推送,并提供诊断工具和实践清单,助力精准实施与监控重定向策略。301重定向不仅是技术手段,更是流量与信任关系的重塑桥梁。
465 6
|
自然语言处理 前端开发 开发者
Angular国际化的秘密武器:手把手教你打造全球化应用,从多语言支持到日期格式化,让您的Web项目无国界畅通无阻的终极指南
【8月更文挑战第31天】在全球化背景下,软件需跨越语言与文化界限。本文探讨如何在Angular应用中实现国际化(i18n)与本地化,通过具体示例介绍多语言支持的实现过程。从创建项目、生成翻译文件到配置`TranslateModule`,详细讲解如何动态切换语言及处理日期、货币等区域特定格式。通过注册特定语言数据,提升应用的全球适应性,使开发者能轻松打造高质量、多语言支持的应用。
389 0
|
自然语言处理 编译器 C语言
【C/C++ 标准的发展】C/C++ 语言标准的历史和演变
【C/C++ 标准的发展】C/C++ 语言标准的历史和演变
1281 3
|
安全 Unix Linux
Linux的九大特点——说明为什么服务器都用Linux
Linux的九大特点——说明为什么服务器都用Linux
600 0
|
安全 Linux 测试技术
软件工程之维护阶段
软件工程之维护阶段
719 0
|
开发者
快速上手:如何在线生成App
现在,越来越多的企业和个人想要拥有一个自己的App,但是对于非开发者来说,如何实现这个目标呢?本文将介绍一种在线生成App的方法——将网页封装成App。
847 0
|
缓存 Java 数据库
Android 性能优化: 请解释ANR(Application Not Responding)是什么,如何避免它?
Android 性能优化: 请解释ANR(Application Not Responding)是什么,如何避免它?
624 0