故障转移

故障转移是容灾预案真正落地的时刻。它不是简单把 DNS 指到备用机房,而是一系列有顺序、有检查、有回滚的动作。

故障发现

切换前要先确认故障级别。常见信号包括:

  • 核心接口错误率持续升高。
  • 主机房网络不可达。
  • 数据库主节点不可写。
  • 多个可用区同时异常。
  • 用户侧成功率明显下降。

单个指标异常不一定要容灾切换,可能只是局部服务故障。切换动作成本很高,需要明确触发条件。

切换流程

一次主备切换通常包括:

  1. 冻结或限制主机房写入,避免双写冲突扩大。
  2. 检查数据同步延迟,评估 RPO。
  3. 提升备用数据库或服务为主。
  4. 切换流量到备用机房。
  5. 打开必要的降级策略。
  6. 验证核心链路:登录、下单、支付、查询。
  7. 持续观察错误率、延迟和业务指标。

每一步都要有负责人、执行命令、验证方法和回滚策略。

自动还是人工

自动切换响应快,但误切风险高;人工切换更谨慎,但可能拖长 RTO。实践中可以分层:

  • 单实例故障自动恢复。
  • 集群主备自动切换。
  • 机房级切换需要自动化执行,但人工确认。

关键是让人工做决策,不让人工手敲复杂命令。

降级策略

备用机房可能容量不足,切换时需要降级:

  • 暂停非核心功能。
  • 限制低优先级流量。
  • 关闭推荐、报表、批处理任务。
  • 对库存、余额等强一致能力收紧写入。

容灾目标是保住核心业务,而不是在事故时维持所有功能。

回切

主机房恢复后,不要急着切回。回切同样有风险:

  • 主备数据是否重新追平?
  • 主机房是否通过健康检查?
  • 切回期间是否会产生双写?
  • 切回失败如何重新回到备用机房?

故障转移和回切都需要演练。下一章先讨论数据一致性,因为它决定了切换后业务是否可信。