3.8.1 备份策略与RPO/RTO定义
3.8.1 备份策略与RPO/RTO定义#
备份策略的核心是以业务连续性为目标,在成本、复杂度与风险之间取得平衡。策略必须可审计、可演练、可量化(RPO/RTO),并落地到具体的备份频率、保留周期、介质与恢复流程。
RPO(Recovery Point Objective,恢复点目标)
表示可容忍的数据丢失窗口,反映“最多能丢多少数据”。RPO 越小,备份频率越高或需要实时复制能力。
- 例:RPO=4小时,意味着最多丢失4小时内的数据变更。
RTO(Recovery Time Objective,恢复时间目标)
表示可容忍的服务中断时间,反映“多久能恢复”。RTO 越小,对恢复流程、备份可用性与自动化要求越高。
- 例:RTO=1小时,意味着从故障发生到服务恢复需在1小时内完成。
原理草图:RPO/RTO 与备份频率关系#
业务分级与策略示例#
- 关键业务:RPO分钟级、RTO小时级,采用高频备份 + 异地副本 + 自动化恢复
- 重要业务:RPO小时级、RTO数小时,采用每日全量 + 定期增量
- 一般业务:RPO天级、RTO天级,采用周期性全量备份
策略模板示例(可纳入运维手册)#
# /etc/backup/policy.yaml
service: order-api
tier: critical
rpo: 15m
rto: 1h
backup_scope:
- /etc
- /var/lib/mysql
- /opt/app/config
schedule:
full: "0 2 * * 0" # 每周日 02:00 全量
incr: "0 * * * *" # 每小时增量
retention:
local: 7d
offsite: 30d
restore_priority:
- database
- app
- web
audit:
drill: "monthly"
量化示例:按变更频率确定 RPO#
假设业务每 10 分钟有一次关键变更,RPO 需 ≤ 10 分钟,则备份频率至少 10 分钟一次:
变更频率: 10分钟
目标RPO: <= 10分钟
建议备份频率: 5-10分钟(留出执行与失败重试窗口)
落地示例:安装计划任务与查看执行状态(以 cron 为例)#
说明:仅演示策略落地的调度管理,不涉及具体备份工具细节(见后续小节)。
安装 cron 服务(示例:RHEL/CentOS)
# 安装
yum -y install cronie
# 启动并设置开机自启
systemctl enable --now crond
# 检查状态
systemctl status crond
配置计划任务(将策略转换为执行频率)
# 编辑当前用户的计划任务
crontab -e
写入:
# 每小时执行一次示例任务(可替换为实际备份脚本)
0 * * * * /usr/local/bin/backup_incr.sh >> /var/log/backup/incr.log 2>&1
# 每周日 02:00 全量
0 2 * * 0 /usr/local/bin/backup_full.sh >> /var/log/backup/full.log 2>&1
命令解释
- crontab -e:编辑当前用户计划任务
- 0 * * * *:每小时整点执行
- >> /var/log/backup/incr.log 2>&1:将标准输出与错误输出写入日志
查看任务是否生效
crontab -l
检查执行日志
tail -n 20 /var/log/backup/incr.log
策略有效性检查清单#
- 备份范围是否覆盖系统配置、应用数据、密钥与证书。
- 是否有至少一份异地副本。
- 保留周期是否匹配合规要求。
- 是否明确恢复优先级与恢复顺序。
- 是否定期演练并记录实际 RPO/RTO。
常见问题与排错#
- 问题1:计划任务未执行
- 排查:
systemctl status crond是否为 active - 排查:
/var/log/cron是否有执行记录 -
处理:确认脚本有可执行权限
chmod +x /usr/local/bin/backup_incr.sh -
问题2:RPO 达不到目标
- 排查:备份频率是否低于目标
- 排查:备份耗时是否超过间隔
-
处理:提升备份频率或采用增量/快照方案
-
问题3:RTO 超时
- 排查:恢复流程是否手工且步骤复杂
- 处理:梳理恢复流程并自动化,提前准备恢复脚本
练习#
- 根据“关键/重要/一般”三类业务为你的系统拟定 RPO/RTO 目标。
- 使用
crontab配置每小时执行的备份任务并验证日志输出。 - 记录一次模拟恢复的时间,评估实际 RTO 是否满足目标。