1. 演练前准备:定义目标与角色分工
确认业务优先级、设定RTO与RPO(例如:关键API RTO=1小时,RPO=15分钟),列出依赖清单(网络、数据库、存储、认证)。明确参与名单:演练指挥、网络工程师、系统管理员、DBA、应用负责人、对外联络人。准备联系表(电话/备用手机号/Telegram/LINE群)。把所有信息写入演练计划与Runbook并保存到受控存储(版本化)。
2. 环境准备:备份与异地资源核验
验证定期备份是否完整(快照、数据库binlog/事务日志、对象存储备份)。在台湾机房和云端分别确认可用IP段、VPC、子网与防火墙规则;预先申请备用弹性IP、浮动VIP或DNS TTL降低策略。确认异地恢复点(另一区域或云供应商)有足够资源配额(CPU、内存、磁盘、公网带宽)。
3. 编写并冻结Runbook:详细恢复步骤
为每个关键系统写明:恢复先后顺序(如先网络->存储->数据库->应用->负载均衡),每步命令/脚本与回滚方法,所需凭证位置,并在Runbook列明预估时间。例如数据库恢复:挂载磁盘->应用全量备份->回放binlog->验证一致性(checksum)。将Runbook放置在本地与云端可访问位置。
4. 演练执行:基础设施恢复操作
模拟故障(例如切断主机或网络),按Runbook逐步操作:在异地创建或启动VM/实例、附加磁盘、还原快照、配置安全组与路由、配置负载均衡后端。每步记录时间戳与执行人。对关键服务进行健康检查(端口、HTTP 200、数据库连通、应用日志无异常)。
5. 应用层恢复与数据一致性验证
还原数据库到指定时间点,运行完整性校验(校验行数、校验和),启动应用并执行事务压力测试脚本或模拟用户操作。比对关键业务指标(订单数、会话数量)与故障前快照,确认RPO是否满足。若不满足,记录差距并分析原因(备份频率、传输延迟)。
6. DNS与流量切换步骤
如采用DNS切换:先降低TTL(演练前至少24小时),演练时修改A/AAAA/CNAME到备用IP并监测DNS解析时间。若采用BGP/浮动IP或负载均衡:先将流量路由到备用设备并观察请求成功率。执行切换时同时开启流量镜像以便回溯比对。
7. 回切流程与数据二次同步
确认主站恢复后,先暂停外部写入或使用维护模式,做数据双向同步或将回流日志导入主库(用binlog或增量复制)。验证主库数据完整性后,按回切Runbook将流量切回并逐步解除维护模式,同时监控应用行为与延迟。
8. 验证、监控与证据留存
演练完成后做统一验证:关键接口响应、事务完整性、用户登录等。保存日志、截图、时间线与检测结果作为证据。用监控工具(Prometheus/Grafana)回放演练期间指标,评估RTO达成情况并归档问题清单与改进项。
9. 评估与改进:RTO/RPO复核
根据演练实际耗时,核对RTO/RPO是否达到目标。若超时,分析瓶颈(备份恢复速度、网络带宽、人工操作延迟),制定改进计划:提高备份频率、改用增量恢复、预留热备资源或自动化脚本减少人工操作。
10. 常用工具与脚本示例
列出推荐工具:rsync/Restic/Velero(K8s备份)、mysqldump/XtraBackup、云供应商快照API、Ansible/Terraform用于自动化、监控与报警(Prometheus/Alertmanager)。在Runbook中附上标准化脚本,并定期演练脚本的可执行性与凭证有效性。
11. 问:如何为台湾机房设定合理的RTO与RPO?
答:先按业务影响分类(关键/次关键/非关键),结合SLA与成本预算设定目标。例如关键交易类RTO≤1小时、RPO≤15分钟;非关键后台批处理RTO可设为24小时、RPO为1小时。基于演练数据与恢复能力调整,同时考虑跨机房复制成本与复杂度。
12. 问:演练中最常见导致恢复延迟的问题是什么?
答:常见问题包括备份不完整或损坏、网络带宽不足导致快照传输慢、人工操作步骤繁琐未自动化、预留资源不足(配额用尽)以及DNS缓存未清或TTL过高。针对每项制定检测与预防措施。
13. 问:如何衡量一次演练是否成功,下一步改进如何落地?
答:以是否达成事先设定的RTO/RPO、业务功能是否正常、是否有人为失误与问题清单为评估标准。演练后形成正式报告,列出根因、改进措施、负责人与截止日期,将改进项纳入迭代计划并在下次演练验证效果。
来源:台湾机房服务器云空间灾难恢复演练流程与恢复时间目标设定