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

一起学PolarDB - 第11期 - 为什么实例越大备份与恢复越难?

原创 digoal 2022-01-20
473

作者

digoal

日期

2022-01-05

标签

PostgreSQL , PolarDB


懂PostgreSQL, 学PolarDB不难, 就好像有九阳神功护体, 可以快速融会贯通.
对于DBA只要学会PolarDB精髓即可.
对于开发者来说不需要学习, 使用PolarDB和PostgreSQL一样.

为什么实例越大备份与恢复越难?

https://www.bilibili.com/video/BV1bS4y1L7Bd/

  • 逻辑备份, 为保证DB层备份集的一致性, 需要开启RR或SSI隔离级别事务, 大库备份周期长, 这个窗口期产生的垃圾无法被回收, 引发膨胀
    • 也会引发无用的vacuum cpu和io消耗, 因为表到达垃圾回收阈值, 但是又一直回收不掉. vacuum 不断的被唤醒扫描表.
  • 逻辑备份, 需要加对象级别共享锁, 直到库级备份结束, 可能引发堵塞DDL操作
  • 物理备份, 不支持partial recovery, 因此恢复需要巨大存储资源
  • 物理备份, 不支持block 级增量备份, 因此每次基础备份都需要备份全量. 实例越大, 全量备份周期间隔、单次全量备份耗时都很长, 周期内的WAL日志越多, 应用WAL恢复到目标时间点的耗时也越长.
  • 物理备份, 一旦恢复到目标时间点, 就不能再往回退(例如恢复到2021-10-10 10:01:00但是发现恢复过头了, 想回退到2021-10-10 10:00:00), 需要回退的话, 还重新恢复一次
  • 备份需要预备大量存储空间(不管是逻辑备份、全量备份、还是归档备份)

社区版本优化方法:
- 安装块级别增量备份插件, 跟踪备份后变化的block, 使用pg_probackup或者pg_rman来支持块级别增量备份
- 使用增量备份, 降低全量备份频次
- 使用增量恢复, 减少恢复需要的wal日志, 缩短恢复耗时
- 采用standby + zfs文件系统, 在standby上使用zfs快照代替数据备份
- 大幅度提升备份速度: 秒级快照
- 减少备份存储空间消耗: zfs支持压缩
- 提高还原速度: 秒级克隆
- 减少备份、恢复存储空间消耗: zfs是cow的, 对于不变的数据快照几乎不占用空间

PolarDB优化方法:
- 使用存储快照代替全量备份. 与ZFS类似: 高效.
- 支持本地快照、二级存储备份(将快照的全量数据转储到OSS或其他对象存储).
- 恢复
- 本地存储集群快照: 秒级恢复.
- 远程快照: 拷贝到本地存储集群后再恢复.

本期问题1:
为什么数据库逻辑备份可能堵塞DDL?
- a. 逻辑备份需要加排他锁, 在实例备份结束时释放
- b. 逻辑备份需要加对象元数据共享锁, 在数据库备份结束时释放
- c. 逻辑备份需要加数据行共享锁, 在实例备份结束时释放
- d. 逻辑备份需要加页级别共享锁, 在数据库备份结束时释放

答案:
- b

解释:
- 参考本文内容

本期问题2:
为什么快照备份比全量备份更快且存储空间耗费更小?
- a. 因为快照支持压缩, 全量备份不支持压缩
- b. 因为快照备份使用了cow技术, 写时才需要拷贝, 对于未修改的数据几乎不占空间. 打快照时也不需要拷贝数据.
- c. 快照的全量拷贝在存储内部完成, 不需要传输数据到外部
- d. 快照备份支持更高的压缩比

答案:
- b

解释:
- 参考本文内容

本期问题3:
哪些方法可以提高备份和恢复的效率?
- a. 跟踪block变化, 使用块级增量备份降低全量备份频率
- b. 使用快照备份代替全量文件拷贝
- c. 使用快照克隆代替全量文件拷贝恢复
- d. 使用快照或克隆异步传输代替同步传输

答案:
- abcd

解释:
- 参考本文内容

本期问题4:
以下对PolarDB备份、恢复描述正确的是?
- a. PolarDB 使用快照备份
- b. PolarDB 云服务需要等待快照备份的内容全部拷贝到OSS才能用于修复因为存储损坏导致的故障. (或者切换到standby) - c. PolarDB 的快照是增量的, 不需要每次都拷贝全量数据 - d. PolarDB 恢复时采用快照克隆+replay wal归档的方式 - e. PolarDB 云服务支持本地快照和二级快照

答案:
- abcde

解释:
- 参考本文内容

期望 PostgreSQL 增加什么功能?

PolarDB for PostgreSQL云原生分布式开源数据库

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论