3、分区表备份策略:全量备份 vs 增量备份、分区级备份的优势、备份窗口与RTO/RPO规划

说到分区表的备份,很多同学第一反应就是「直接全库备份不就行了?」。嗯,我刚开始带项目时也这么想。直到有一次,一个 5TB 的分区表,全量备份跑了 11 个小时,直接把业务窗口给堵死了。从那以后,我才真正开始琢磨——分区表的备份,到底该怎么玩?

全量备份 vs 增量备份:不是非黑即白的选择

先说说全量备份。说白了,就是把整个分区表的所有数据,一股脑全拷出来。优点是恢复简单,一个备份集搞定一切。缺点也很明显——慢、占空间、对生产库压力大。

我见过一个极端案例:某电商平台的大促历史表,每年一个分区,总共 60 个分区,全量备份跑了 14 小时。你想想看,这期间业务要是出点问题,DBA 得背多大的锅?

增量备份呢?只备份上次备份以来变化的数据。速度快、空间省,但恢复时你得把全量 + 所有增量串起来,一个环节出问题就全完蛋。

我个人习惯的做法是:分区表采用「全量 + 增量」混合策略。具体来说:

  • 冷分区(历史数据):每月一次全量备份。这些分区基本不写,备份一次管一个月。
  • 热分区(当前数据):每天一次增量备份。变化量小,备份快,恢复也快。
  • 归档分区:备份一次后直接转存到廉价存储,本地只保留最近 3 个月的备份。

核心原则:不要对所有分区一视同仁。数据热度不同,备份策略就该不同。

分区级备份的优势:这才是真正的杀手锏

分区表最大的好处是什么?是你可以只备份一个分区,而不是整张表。这个能力在实战中太香了。

举个例子。我曾经维护过一个日志表,按天分区。某天凌晨,一个分区数据损坏了。如果是普通表,我得从全量备份里恢复整张表,至少 4 小时。但因为是分区表,我只恢复了那一个损坏的分区,20 分钟搞定。业务方还没反应过来,问题已经解决了。

分区级备份的优势,我总结为三点:

  1. 备份粒度更细:你可以只备份最近 7 天的热分区,历史分区一个月备份一次就行。
  2. 恢复速度更快:哪个分区坏了修哪个,不用动其他分区。
  3. 资源消耗更低:备份时只锁一个分区,其他分区还能正常读写。

我的小技巧:在备份脚本里加一个分区状态检查。如果某个分区最近 24 小时没有写入,自动跳过它的增量备份。能省不少空间和时间。

备份窗口与 RTO/RPO 规划:别让理论害了你

RTO(恢复时间目标)和 RPO(恢复点目标),这两个词大家应该不陌生。但说实话,很多公司的 RTO/RPO 都是拍脑袋定的。我见过一家公司,RTO 定的是 15 分钟,结果全量备份就要跑 2 小时。这不是自己给自己挖坑吗?

对于分区表,我的建议是:按分区级别来定义 RTO/RPO。

分区类型 RTO RPO 备份策略
热分区(最近 7 天) 30 分钟 15 分钟 每小时增量备份
温分区(7-30 天) 2 小时 1 小时 每天增量备份
冷分区(30 天以上) 24 小时 24 小时 每周全量备份

你看,这样一规划,备份窗口就清晰了。热分区虽然备份频率高,但数据量小,每次增量备份也就几分钟。冷分区虽然数据量大,但一周才备份一次,完全可以在业务低峰期跑。

避坑指南:我曾经遇到过一个问题——增量备份的日志文件没及时清理,导致磁盘写满,备份失败。后来我加了一个自动清理机制:增量备份完成后,只保留最近 3 天的日志。这个坑,希望你别踩。

一张图看懂分区表备份策略

下面这张图,是我自己画的分区表备份策略流程图。你可以看到,不同分区的备份路径是完全独立的,互不影响。

分区表备份策略流程图 分区表 热分区(最近7天) 温分区(7-30天) 冷分区(30天以上) 每小时增量备份 RTO: 30分钟 RPO: 15分钟 每天增量备份 RTO: 2小时 RPO: 1小时 每周全量备份 RTO: 24小时 RPO: 24小时 备份存储(本地 + 异地容灾)

你看,热分区走的是高频增量路线,冷分区走的是低频全量路线。各走各的道,互不干扰。这就是分区级备份的精髓。

备份窗口的实战计算

最后说说备份窗口怎么算。很多人觉得这是个数学题,其实它是个管理题。

我一般这样算:

  • 热分区:每个分区 100GB,增量变化率 5%,每次增量备份 5GB。按 200MB/s 的写入速度,5GB 只需要 25 秒。加上校验和日志,1 分钟搞定。
  • 冷分区:每个分区 500GB,全量备份按 200MB/s 算,需要 2500 秒,约 42 分钟。一周备份一次,完全可以在凌晨 2 点到 3 点跑完。

你想想看,如果不用分区级备份,而是全表全量备份,5TB 的数据要跑 7 个小时。哪个更合理?一目了然。

一句话总结:分区表备份的核心不是「怎么备」,而是「备哪个」。选对分区,备份窗口自然就小了。

好了,这一章的内容就到这里。记住,备份策略没有银弹,只有最适合你业务场景的方案。多花点时间分析数据热度,比盲目追求全量备份要靠谱得多。