SENTINEL redis runtime_error ai_generated true

SENTINEL:故障转移中止 - 未找到主节点 'mymaster' 的候选副本

SENTINEL: failover aborted - no good replica found for master 'mymaster'

ID: redis/sentinel-failover-no-good-replica

其他格式: JSON · Markdown 中文 · English
80%修复率
84%置信度
1证据数
2024-01-12首次发现

版本兼容性

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

根因分析

Sentinel 无法提升任何副本,因为所有副本要么过时(数据太旧)、宕机,要么优先级为 0。

English

Sentinel could not promote any replica because all replicas are either stale (data too old), down, or have priority 0.

generic

官方文档

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

解决方案

  1. Check replica replication lag and priority:
    INFO REPLICATION on each replica
    Ensure at least one replica has lag < sentinel-replica-down-after-milliseconds and priority > 0.
    If lag is high, wait for sync or manually trigger replication from master.
  2. Adjust replica priority to 1 (default) on all replicas:
    CONFIG SET replica-priority 1
    This ensures they are eligible for promotion.

无效尝试

常见但无效的做法:

  1. 65% 失败

    Timeout increase does not fix stale or down replicas; failover will still abort.

  2. 75% 失败

    If the replica is too stale, promoting it can cause data loss and inconsistency.

  3. 80% 失败

    Restarting sentinels does not change replica state; they will still see the same condition.