首页/数据/数据库速查/手动演练与运维命令(FAILOVER / RESET)
Redis 运维与场景124 条

手动演练与运维命令(FAILOVER / RESET)

计划内演练用 SENTINEL FAILOVER 主动切换(无需等故障);配置漂移用 RESET 重新发现;flushconfig 把内存配置写回文件。

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

哨兵运维命令是什么

除了被动等待故障,哨兵还提供一组运维命令:主动发起切换用于计划内演练,重置监控状态用于处理配置漂移,把内存中的配置写回文件避免重启丢失。定期在业务低峰做一次主动切换演练,是验证高可用体系最直接的办法。

基本信息

主动切换SENTINEL FAILOVER 主库名,无需等故障发生
重置状态SENTINEL RESET 主库名,清除该主库的哨兵状态并重新发现
落盘配置SENTINEL FLUSHCONFIG 把运行时配置写回配置文件
动态增减SENTINEL MONITOR 新增监控,SENTINEL REMOVE 移除
健康核对SENTINEL CKQUORUM 检查当前哨兵数量是否满足投票要求

典型使用场景

  • 计划内切换演练:验证客户端自动重连与告警链路是否完整
  • 硬件维护:需要在可控时间把主库切到另一台机器时主动切换
  • 状态漂移修复:哨兵对主库状态判断异常时重置后重新发现
  • 配置持久化:动态新增监控对象后写回文件,避免重启丢失
  • 投票能力核对:确认在线哨兵数量仍满足多数派要求

演练与维护

演练与维护
redis-cli -p 26379 SENTINEL CKQUORUM mymaster        # 先确认投票能力
redis-cli -p 26379 SENTINEL FAILOVER mymaster        # 主动发起一次切换
redis-cli -p 26379 SENTINEL get-master-addr-by-name mymaster   # 核对切换结果
redis-cli -p 26379 SENTINEL RESET mymaster           # 状态异常时重置并重新发现
redis-cli -p 26379 SENTINEL MONITOR mymaster2 10.0.0.30 6379 2   # 动态新增监控
redis-cli -p 26379 SENTINEL FLUSHCONFIG              # 配置写回文件
redis-cli -p 26379 SENTINEL REMOVE mymaster2         # 动态移除监控

命令与作用

命令作用注意事项
主动切换立即发起一次切换需要多数派哨兵在线,低峰执行
重置状态清除状态并重新发现重置期间状态判断可能短暂异常
落盘配置把运行时配置写回文件动态改动后必须执行,否则重启丢失
新增或移除监控动态调整被监控对象改动后记得落盘
投票核对检查是否满足多数派返回不满足时切换无法完成
演练要覆盖完整链路:切换动作、客户端地址刷新、业务无感知、切回原主库,缺一项都不算验证完成。
在生产高峰手工发起切换:切换窗口内的写失败会被当成线上故障,选择业务低峰并提前通知。

易错点

  • 在生产高峰发起主动切换:切换窗口内写入失败,被当成线上事故处理
  • 动态新增监控后忘记落盘:重启后监控对象消失,切换能力无形缺失
  • 不核验投票能力就直接切换:哨兵数量不足时切换无法完成,白等一场
  • 演练只做切换不做回切与业务核对:真实故障时才发现客户端没刷新地址

数据来源与参考

  • Redis 官方文档: SENTINEL FAILOVER
  • Redis 官方文档: SENTINEL RESET

相关工具

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