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

策略有效性检查清单#

  1. 备份范围是否覆盖系统配置、应用数据、密钥与证书。
  2. 是否有至少一份异地副本。
  3. 保留周期是否匹配合规要求。
  4. 是否明确恢复优先级与恢复顺序。
  5. 是否定期演练并记录实际 RPO/RTO。

常见问题与排错#

  • 问题1:计划任务未执行
  • 排查:systemctl status crond 是否为 active
  • 排查:/var/log/cron 是否有执行记录
  • 处理:确认脚本有可执行权限 chmod +x /usr/local/bin/backup_incr.sh

  • 问题2:RPO 达不到目标

  • 排查:备份频率是否低于目标
  • 排查:备份耗时是否超过间隔
  • 处理:提升备份频率或采用增量/快照方案

  • 问题3:RTO 超时

  • 排查:恢复流程是否手工且步骤复杂
  • 处理:梳理恢复流程并自动化,提前准备恢复脚本

练习#

  1. 根据“关键/重要/一般”三类业务为你的系统拟定 RPO/RTO 目标。
  2. 使用 crontab 配置每小时执行的备份任务并验证日志输出。
  3. 记录一次模拟恢复的时间,评估实际 RTO 是否满足目标。