
你的备份脚本每天在跑,磁盘用了不少,你觉得很安心。直到有一天数据库坏了,你要恢复数据。你发现恢复需要先恢复周一的备份,再恢复周二到周五的5个增量文件,其中第三个还坏了。你花了半天才恢复,业务停了6小时。
备份做对了,策略选错了,恢复的时候才会知道问题。今天把三种备份策略讲清楚——全量、增量、差异。
先看一个数据
在一场实际的灾难恢复中,恢复时间的差异比备份时间更关键。全量备份恢复最快,但备份窗口最长;增量备份备份最快,但恢复链条最长且最脆弱(任何一个增量文件损坏都会影响恢复)。差异备份介于两者之间,只需要全量+最后一个差异文件就能恢复,但差异文件会随着时间推移越来越大。
三种策略的定义
全量备份:备份所有数据。优点是恢复最快(只需要一次操作),缺点是备份耗时最长、占用存储最多。
增量备份:只备份自上次备份(全量或增量)以来变化的数据。优点是备份最快、存储最省,缺点是恢复最慢(需要全量+所有增量),且增量链条越长,损坏风险越大。
差异备份:只备份自上次全量备份以来变化的数据。优点是恢复比增量快得多(只需要全量+最后一次差异),缺点是差异文件会不断累积到接近全量的大小。
用时间线举例说明
假设周一凌晨执行全量备份,周二到周日每天各执行一次增量或差异备份。
增量备份模式:
| 日期 | 备份内容 | 备份文件 |
|---|---|---|
| 周一 | 全量(100GB) | full_周一 |
| 周二 | 周一以来的变化(2GB) | inc_周二 |
| 周三 | 周二以来的变化(3GB) | inc_周三 |
| 周四 | 周三以来的变化(1GB) | inc_周四 |
| 周五 | 周四以来的变化(4GB) | inc_周五 |
| 周六 | 周五以来的变化(2GB) | inc_周六 |
| 周日 | 周六以来的变化(3GB) | inc_周日 |
恢复过程:恢复周一全量 → 周二增量 → 周三增量 → 周四增量 → 周五增量 → 周六增量 → 周日增量。7步操作,任何一个增量文件损坏,后面的数据都无法恢复。
差异备份模式:
| 日期 | 备份内容 | 备份文件 |
|---|---|---|
| 周一 | 全量(100GB) | full_周一 |
| 周二 | 周一到周二的差异(2GB) | diff_周二 |
| 周三 | 周一到周三的差异(5GB) | diff_周三 |
| 周四 | 周一到周四的差异(6GB) | diff_周四 |
| 周五 | 周一到周五的差异(10GB) | diff_周五 |
| 周六 | 周一到周六的差异(12GB) | diff_周六 |
| 周日 | 周一到周日的差异(15GB) | diff_周日 |
恢复过程:恢复周一全量 → 周日差异。2步操作。差异文件会逐渐变大(周五的差异包含了周一到周五的所有变化),但恢复比增量快得多。
三种策略核心指标对比
| 指标 | 全量备份 | 增量备份 | 差异备份 |
|---|---|---|---|
| 备份速度 | 慢 | 快 | 中等 |
| 存储空间 | 大 | 小 | 中等 |
| 恢复速度 | 快 | 慢 | 中等 |
| 恢复操作步数 | 1步 | N步(全量+所有增量) | 2步(全量+最后差异) |
| 备份文件损坏风险 | 单个文件 | 链条脆弱,任一损坏影响恢复 | 需要全量和最后一个差异可用 |
实际场景选型:用RPO和RTO做决策
选备份策略的核心是两个指标:
- RPO(恢复点目标):你能接受丢失多少数据?能接受丢失1小时的数据,每小时做一次增量或差异备份。
- RTO(恢复时间目标):你需要在多长时间内恢复业务?要求在30分钟内恢复,用差异备份或全量备份。
场景一:核心业务数据库(高RTO要求)
数据库需要能在30分钟内恢复,用全量备份+差异备份组合。每周日全量,每天差异。恢复只需要2步,30分钟内可以完成。
场景二:文件服务器(低成本诉求)
文件服务器数据量巨大,存储成本优先考虑。用每周全量+每天增量,增量备份存储最省,备份窗口最短。但恢复时需要逐日恢复,时间较长,文件服务器通常可以接受半天恢复。
场景三:开发测试环境(低RPO/RTO要求)
开发测试环境数据量通常较小,直接用全量备份,每天一次。备份和恢复都简单,不需要增量或差异的复杂性。
混合策略:实际生产中的做法
大多数企业不会只用一种策略。常见做法:
- 每周日凌晨:全量备份(40GB,4小时)
- 每天凌晨:差异备份(5-15GB,1-2小时)
- 每小时:增量备份(1-2GB,10-15分钟)
- 每15分钟:日志备份(增量恢复的最小粒度)
恢复时如果最近1小时的增量备份损坏,可以退回到1小时前的差异备份。通过这种分层策略,在备份效率和恢复可靠性之间取得平衡。
真实案例
一家公司的DBA选择了“每周全量+每天增量”的策略,因为增量备份最省空间。某天数据库损坏,恢复需要依次恢复周一全量 + 周二到周五的4个增量文件。恢复执行到第三个增量时,提示文件损坏。后面的数据无法恢复,丢失了周三到周五的数据,业务影响持续到周末。如果当时用的是“全量+差异”策略,只需要恢复全量+周五差异,可以更快恢复且少丢失数据。
最后一句
选备份策略不是选“最省空间的”,是选“恢复时最可靠的”。增量备份省空间但恢复链条脆弱,差异备份恢复快但差异文件会持续增长。核心业务优先考虑恢复速度,大规模数据优先考虑备份窗口。策略选对了,恢复时你才不会慌。




