首页/数据/Redis 进阶速查/主从故障恢复检查清单
主从与哨兵51 条

主从故障恢复检查清单

故障恢复时逐项核对:谁是当前主库、各从库复制状态与偏移、是否有双主、数据差异范围、客户端地址是否刷新、告警是否恢复。

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

恢复靠清单而不是记忆

主从故障恢复真正容易出错的不是操作本身,而是顺序与遗漏。恢复时要按清单逐项核对:先确认当前谁是主库(以实际查询结果为准,不凭印象),再看各从库的复制状态与偏移量,确认没有出现双主,评估数据差异范围并定下补数方案,最后收尾:刷新客户端指向、确认告警恢复、记录复盘。

基本信息

拓扑确认以复制状态查询与哨兵查询结果为准
数据核对评估各副本偏移差异与需要补的范围
风险排查确认没有两个实例同时被当作主库
收尾动作客户端刷新、告警恢复、写复盘记录
执行要求恢复动作尽量脚本化,可审计可回放

典型使用场景

  • 主库故障切换完成后确认新拓扑是否符合预期
  • 旧主库恢复上线后决定它以什么身份回归,避免双主
  • 数据出现分叉需要评估差异范围并制定补数方案
  • 业务仍在写旧地址导致「切换了但没生效」的慢故障
  • 把一次真实故障的处置过程沉淀成可复用的操作步骤

核对命令

核对命令
redis-cli INFO replication                       # 当前角色、主从链路与偏移
redis-cli -p 26379 SENTINEL GET-MASTER-ADDR-BY-NAME mymaster  # 哨兵认可的主库地址
redis-cli -h <各实例> INFO replication | grep role   # 逐台确认角色,排除双主
redis-cli -h <各实例> INFO replication | grep master_last_io_seconds_ago
redis-cli -h <新主库> DBSIZE                    # 数据量基线,与旧记录比对

检查项与判据

检查项命令或动作合格判据
当前主库身份哨兵查询与实例角色查询两者一致,且只有一台报主
副本链路状态复制状态查询链路正常,无长期断连副本
偏移差异复制偏移与落后秒数差异可解释,补数方案明确
客户端指向连接来源与目标地址排查业务已写入新主库
告警状态监控面板相关告警已恢复或已确认关闭
恢复之后不要急着把旧主库直接挂回:先核对它的数据与当前主库的差异,否则分叉的数据可能被覆盖或带进线上。
忘记确认客户端是否已指向新主库,是「切换完成但业务仍报错」这类慢故障的常见成因,收尾阶段要专门确认。

易错点

  • 旧主库未经数据核对就重新挂回,分叉数据被覆盖,故障排查变成数据事故
  • 只确认哨兵给出新主库地址,不逐台核对角色,双主写入在无人察觉时发生
  • 恢复后立刻恢复自动切换而没检查副本完整性,同样的故障短时间内再次触发
  • 处置过程全靠手工敲命令,事后无法复盘,同类问题下次仍然重复

数据来源与参考

  • Redis 官方文档:故障恢复与运维建议
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌