dr-drills

灾难恢复演练的频率、场景与验收

补充说明

DR 演练验证的是“真出事时能不能在 RTO 内恢复、会丢多少数据(RPO)”,不是“备份任务是否成功”。备份成功不等于可恢复;必须实际恢复到独立环境并校验数据。

演练类型从桌面推演、单组件故障、区域切换到全量恢复。频率按业务等级定,核心系统至少每季度一次切换演练。

常用示例

DR 分级:

等级 RTO RPO 方案 演练频率
核心交易 15 分钟 0 多活 + 同步复制 每季度切换
重要服务 1 小时 5 分钟 同城双活 + 异步复制 每半年
内部系统 8 小时 24 小时 备份恢复 每年

演练方案模板:

演练名称:prod-sh-1 区域故障切换
时间窗口:2026-11-08 02:00–05:00 CST
范围:支付、订单;不含风控
前置条件:备份校验通过、DNS TTL 调到 60s、观察者就位
步骤:
1. 冻结变更,通知业务
2. 停止 prod-sh-1 写入或模拟区域故障
3. 提升 prod-sh-2 数据库为主
4. 切换全局流量
5. 验证核心链路和关键报表
6. 记录实测 RTO/RPO
中止条件:数据不一致、双写、错误率 > 5%
回滚:切回 prod-sh-1,恢复复制关系

备份恢复验证:

velero restore create --from-backup prod-20261017 --namespace-mappings prod:drill
kubectl -n drill get pods
kubectl -n drill get pvc
psql "$DR_DSN" -c "select count(*) from orders;"

切换后验证:

kubectl --context prod-sh-2 get nodes
kubectl --context prod-sh-2 -n checkout get pods
curl -fsS https://api.example.com/healthz

记录实测结果:

指标 目标 实测 差距 改进项
RTO 15 分钟 22 分钟 +7 分钟 预拉起副本,减少镜像拉取
RPO 0 30 秒 +30 秒 改为同步复制
数据校验 100% 99.98% -0.02% 补恢复后对账任务

演练判定规则:

易错点与排错

读完自测

合上页面,先回答,再展开对照。

  1. 备份成功是否等于可恢复?为什么?
  2. RTO 和 RPO 分别衡量什么?
  3. 演练判定失败的条件有哪些?
答案
  1. 不等于。必须实际恢复到独立环境,验证数据完整性、依赖、权限和启动顺序。
  2. RTO 是恢复服务所需的最长时间;RPO 是允许丢失的数据时间窗口。
  3. 核心链路未恢复、数据丢失超过 RPO、RTO 超时,或关键步骤依赖未文档化的个人知识。

相关条目