4. 备份策略配置:全量备份、增量备份、日志备份的策略与周期设置
在变更窗口场景下,备份策略的核心目标是在有限的操作时间内,既能保障数据可恢复性,又不因备份任务本身拖垮系统性能或延长窗口。全量备份、增量备份与日志备份三者的组合,决定了恢复点目标(RPO)与恢复时间目标(RTO)的平衡点。
4.1 三种备份类型定义与适用场景
| 备份类型 | 数据范围 | 恢复依赖 | 变更窗口适用性 |
|---|---|---|---|
| 全量备份 | 整个数据库或指定表空间 | 独立恢复,无需其他备份 | 适合窗口内低频执行(如每周一次),耗时最长 |
| 增量备份 | 自上次全量或增量以来变更的数据块 | 需依赖最近一次全量+所有后续增量 | 适合窗口内高频执行(如每日一次),体积小、速度快 |
| 日志备份 | 事务日志文件(如 MySQL binlog、SQL Server tlog) | 需依赖全量+增量+连续日志链 | 适合窗口内或窗口外持续执行,实现秒级 RPO |
关键原则:变更窗口内优先执行增量备份与日志备份;全量备份尽量安排在窗口外或窗口起始阶段,避免阻塞业务流量。
4.2 典型备份周期策略
以下策略以周为周期单位,适用于大多数 OLTP 生产系统。实际周期需根据数据变更量、窗口时长、存储容量调整。
- 全量备份:每周 1 次,建议安排在变更窗口开启前(如周日凌晨 02:00),或窗口内业务低峰期。
- 增量备份:每日 1 次,安排在窗口内或窗口外固定时间点(如每日 22:00),与全量备份错开。
- 日志备份:每 5~15 分钟 1 次,或根据日志生成速率动态调整,确保 RPO ≤ 15 分钟。
推荐组合:全量(周日)+ 增量(周一至周六)+ 日志(每 10 分钟)。该组合在恢复时只需加载 1 个全量 + 最多 6 个增量 + 少量日志,恢复路径清晰。
4.3 备份策略配置示例(MySQL + XtraBackup + binlog)
# 全量备份脚本(每周日 02:00)
0 2 * * 0 /usr/bin/xtrabackup --backup --target-dir=/backup/full/$(date +\%Y\%m\%d) --user=backup --password=xxx
# 增量备份脚本(周一至周六 22:00)
0 22 * * 1-6 /usr/bin/xtrabackup --backup --target-dir=/backup/inc/$(date +\%Y\%m\%d) \
--incremental-basedir=/backup/full/$(date +\%Y\%m\%d -d "last sunday") --user=backup --password=xxx
# 日志备份脚本(每 10 分钟)
*/10 * * * * mysql -u backup -p'xxx' -e "FLUSH BINARY LOGS;" && \
cp /var/lib/mysql/binlog.* /backup/binlog/$(date +\%Y\%m\%d)/
注意:增量备份的 --incremental-basedir 必须指向最近一次全量或增量备份目录,否则恢复时无法构建连续数据块链。建议使用脚本自动计算基准目录。
4.4 备份策略与恢复路径关系图
下图展示了一个完整周周期内,全量、增量与日志备份的时序关系,以及恢复时所需的数据链。
4.5 备份策略配置检查清单
| 检查项 | 要求 | 验证方法 |
|---|---|---|
| 全量备份周期 | ≤ 7 天 | 查看备份任务历史记录 |
| 增量备份周期 | ≤ 24 小时 | 检查增量备份文件时间戳 |
| 日志备份间隔 | ≤ 15 分钟 | 统计日志备份文件生成频率 |
| 备份存储冗余 | 至少 2 份副本(本地 + 远程) | 检查备份目录与远程同步状态 |
| 恢复演练 | 每季度至少 1 次全流程恢复测试 | 执行恢复脚本并验证数据一致性 |
| 备份过期清理 | 保留最近 30 天全量 + 增量,日志保留 7 天 | 检查自动清理脚本执行日志 |
4.6 变更窗口内的备份执行策略
变更窗口通常持续 2~4 小时,备份任务必须与变更操作并行且互不干扰。推荐以下执行顺序:
- 窗口开启前 30 分钟:执行一次日志备份,确保当前日志已归档。
- 窗口开启时:如果当天有全量计划,先启动全量备份(后台运行,不阻塞变更);否则跳过。
- 变更操作期间:保持日志备份按原周期执行,不中断。
- 窗口关闭前 15 分钟:执行一次增量备份(如果当天有增量计划),记录变更后的数据状态。
- 窗口关闭后:立即执行一次日志备份,形成完整的恢复链终点。
最佳实践:在变更窗口内,将增量备份与日志备份的优先级设为高于全量备份。如果全量备份未能在窗口内完成,允许其跨窗口继续运行,但需监控 IO 压力,必要时手动暂停。
4.7 备份策略常见问题与规避
- 全量备份与变更操作同时执行导致锁争用:使用支持热备的工具(如 XtraBackup、pg_basebackup),或设置备份优先级低于业务线程。
- 增量备份链断裂:每次增量备份后记录基准目录,恢复时按时间顺序拼接,避免中间缺失。
- 日志备份文件堆积:设置自动清理策略,保留最近 N 天的日志,超出部分自动删除或归档至冷存储。
- 备份窗口与变更窗口重叠导致 IO 飙升:限制备份任务的 IO 带宽(如 XtraBackup 的
--throttle参数),或调整备份并发数。