SENTINEL redis runtime_error ai_generated partial

哨兵:故障转移中止 - 主节点变更后无法达到仲裁数

SENTINEL: failover aborted - no reachable quorum after master change

ID: redis/redis-sentinel-down-after-master-failover

其他格式: JSON · Markdown 中文 · English
85%修复率
83%置信度
1证据数
2024-06-20首次发现

版本兼容性

版本状态引入弃用备注
redis 6.2 active
redis 7.0 active
redis 7.2 active
redis 7.4 active

根因分析

在主节点故障转移后,新主节点的配置纪元不一致,导致哨兵实例失去仲裁并中止故障转移过程。

English

After a master failover, the new master's configuration epochs are inconsistent, causing sentinel instances to lose quorum and abort the failover process.

generic

官方文档

https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/

解决方案

  1. Manually reset the sentinel state for the affected master: `SENTINEL RESET mymaster` on each sentinel. Then monitor with `SENTINEL MASTER mymaster` to verify quorum.
  2. Force a new failover by running `SENTINEL FAILOVER mymaster` on the leader sentinel after ensuring all sentinels agree on the new master's configuration.
  3. Check and synchronize sentinel configuration files across all nodes, ensuring `sentinel monitor` and `sentinel auth-pass` are identical, then restart sentinels one by one.

无效尝试

常见但无效的做法:

  1. Restarting all sentinel instances simultaneously 75% 失败

    Simultaneous restart can cause all sentinels to lose state, delaying failover detection and potentially causing split-brain scenarios.

  2. Manually setting the old master back as leader 95% 失败

    The old master may be unreachable or have stale data; forcing it back can cause data loss and inconsistency with replicas.

  3. Increasing sentinel quorum to 5 80% 失败

    Higher quorum makes it harder to reach consensus, especially in degraded networks, and does not fix the epoch mismatch.