哨兵运维命令是什么
除了被动等待故障,哨兵还提供一组运维命令:主动发起切换用于计划内演练,重置监控状态用于处理配置漂移,把内存中的配置写回文件避免重启丢失。定期在业务低峰做一次主动切换演练,是验证高可用体系最直接的办法。
基本信息
| 主动切换 | 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 # 动态移除监控命令与作用
| 命令 | 作用 | 注意事项 |
|---|---|---|
| 主动切换 | 立即发起一次切换 | 需要多数派哨兵在线,低峰执行 |
| 重置状态 | 清除状态并重新发现 | 重置期间状态判断可能短暂异常 |
| 落盘配置 | 把运行时配置写回文件 | 动态改动后必须执行,否则重启丢失 |
| 新增或移除监控 | 动态调整被监控对象 | 改动后记得落盘 |
| 投票核对 | 检查是否满足多数派 | 返回不满足时切换无法完成 |
演练要覆盖完整链路:切换动作、客户端地址刷新、业务无感知、切回原主库,缺一项都不算验证完成。
在生产高峰手工发起切换:切换窗口内的写失败会被当成线上故障,选择业务低峰并提前通知。