首页/数据/数据库速查/故障切换预案文档要素
主从复制与高可用53 条

故障切换预案文档要素

预案要能「交给没参与过的人执行」:决策树(何时切)、角色与联系方式、每一步命令、验证点、回退与上报路径。

数据库速查数据更新于 2026-10-13

故障切换预案文档要写什么

好的预案标准是「交给没参与过的人也能执行」:判定标准要量化(谁探测、几路失败、持续多久才算故障),决策人要唯一且当班可联系,执行步骤要细化到可复制的命令,每一步都要有验证点,最后还要有善后与复盘安排。预案存在的意义是把故障当天从「临场判断」变成「照单执行」。

基本信息

文档形态Runbook(操作手册),放在值班可随时访问的位置
必备章节判定标准、决策人、执行步骤、验证点、回退与善后
演练节奏季度桌面推演 + 半年实战演练
关联文档切换前检查清单(Go / No-Go)、拓扑图、账号与权限说明
维护责任指定 owner,架构或拓扑变更后必须同步更新
验证标准新值班同学照文档能独立完成一次切换演练

典型使用场景

  • 主库宕机:值班按判定标准确认后启动切换流程
  • 计划内维护:用同一份文档做 switchover 操作
  • 值班交接:新同学按文档熟悉流程与工具位置
  • 合规审计:证明故障处理有明确流程与责任人
  • 故障复盘:对照预案检查哪一步执行不到位

预案骨架示例

预案骨架示例
1. 探测:nodeA/nodeB 两路探测失败持续 > 90 秒
2. 决策:值班确认后呼叫 DBA 负责人,明确「切/不切」
3. 执行:提升 repl-01 为新主(命令见附录 A,逐条可复制)
4. 验证:写入自测、应用探针恢复、错误率回落
5. 善后:隔离旧主、记录可能丢失的事务窗口、通知业务方
6. 复盘:48 小时内出报告,更新预案与监控阈值

要素与常见缺口

要素写清楚什么常见缺口
判定标准探测方式、路数、持续时长只写「主库不可用」,没有量化口径
角色决策人、执行人、通知对象与联系方式只写岗位不写人,值班时找不到人
执行步骤逐条命令与预期输出写「提升从库」但不给命令
验证点每步之后检查什么才算通过切换完成即宣布结束,业务仍连不上
回退与善后旧主处理、数据补偿、上报路径没人负责数据缺口核对与通知
预案要与发布系统或工单系统联动:把切换清单做成工单模板,执行时逐步勾选并留下时间戳,既防漏步骤,也天然形成故障时间线供复盘使用。
预案不演练等于没有预案:第一次照着执行往往就是真实故障当天,而真实故障里还叠加了网络抖动、监控噪声与业务压力,未演练过的流程几乎必然超时。

易错点

  • 预案只存在某个人脑子里:他一休假,故障就必须等人回来处理
  • 从演练过切换:真故障时才发现命令路径、账号权限、网络策略都不对
  • 切换完成后没有验证点:从库已提升但应用仍连旧地址,业务继续报错
  • 预案不更新:拓扑已变、节点已下线,照着旧文档操作指向不存在的实例
  • 缺少善后与通知环节:业务方与上下游不知情,重复排查或重复操作造成二次故障

数据来源与参考

  • MySQL 8.0 Reference Manual: Failover
  • SRE 演练实践

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌