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.