首页/数据/Redis 进阶速查/故障演练:切换与宕机剧本
性能与排障129 条

故障演练:切换与宕机剧本

演练剧本:主从切换、副本宕机、网络分区、节点重启;在生产镜像环境执行并记录 RTO 与数据行为,验证监控与告警覆盖。

Redis 进阶速查数据更新于 2026-10-13

演练要回答什么

演练剧本覆盖:主从切换、副本宕机、网络分区、节点重启。在与生产同构的环境执行,记录 RTO 与数据行为,同时验证监控告警与处置手册是否真的有效。演练的价值在于把文档里是这样变成实测是这样,两者之间的差距就是隐患。

基本信息

演练场景切换、宕机、分区、重启
记录内容RTO 与数据影响
同步验证告警触发与处置手册
环境要求与生产同构的镜像环境

典型使用场景

  • 验证主从切换的实际耗时与数据丢失窗口
  • 验证哨兵或集群的自动故障转移是否按预期动作
  • 验证客户端在切换窗口的表现:是否报错、能否自愈
  • 验证告警是否真的会触发、通知是否送达
  • 验证处置手册里的命令与判断标准是否仍然有效

演练常用命令

演练常用命令
redis-cli -p 26379 SENTINEL FAILOVER mymaster   # 手动触发一次故障转移(哨兵)
redis-cli INFO replication                       # 观察角色是否已切换
redis-cli INFO server | grep -E 'uptime_in_seconds'   # 确认是否发生重启
redis-cli -p 26379 SENTINEL MASTERS              # 查看哨兵监控的主库状态
redis-cli INFO stats | grep -E 'sync_full'       # 观察全量同步次数变化
redis-cli --latency                              # 记录切换期间的延迟表现

场景、预期与记录

演练场景预期行为要记录什么
主从切换从库被提升为主库RTO、数据丢失窗口、客户端报错时长
副本宕机主库继续提供写入复制积压大小、恢复后是否转全量同步
网络分区少数派一侧停止写入分区期间两侧的可用性与一致性表现
节点重启从 RDB 或 AOF 恢复数据恢复耗时、加载期间客户端表现
大键删除观察主线程是否停顿实际阻塞时长与受影响请求数
演练要在与生产同构的环境进行,尤其是网络拓扑与实例规格。只在测试环境演练,生产网络差异带来的问题不会被覆盖到。
演练本身有风险:必须有明确的执行脚本与回滚步骤,并安排在低峰窗口,否则演练操作自己就会变成一次故障。
演练的产出不是通过或失败,而是一份差距清单:预期与实际的差异、手册里失效的命令、没响的告警,逐条转成改进项。

易错点

  • 只在测试环境演练:生产网络与规格差异未被覆盖
  • 演练没有脚本与回滚:操作本身成为风险
  • 只记录切换成功:不记 RTO 与客户端报错时长,结论无法量化
  • 不验证告警:演练全程告警没响也无人发现

数据来源与参考

  • Redis 官方实践:容灾演练
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌