ERR FAILOVER requires connected replicas.: FAILOVER requires connected replicas(FAILOVER 需要已连接的副本)
Redis含义
运行了 FAILOVER 以启动协调式(平滑)故障转移,但由于没有连接到主节点且可接管的合适副本,该命令被拒绝。没有可移交角色的目标,故障转移就无法进行。
原因
主节点当前没有已连接的副本(副本已宕机、与网络断开或未同步),或指定的目标副本不符合条件/未连接。调用手动 FAILOVER(Redis 6.2+)时,复制拓扑不满足所需条件。注意:FAILOVER 仅适用于单机(master/replica)复制;在 Redis Cluster 中应在副本上使用 CLUSTER FAILOVER。
解决方法
确保至少存在一个健康、已连接且数据最新的副本(用 INFO replication 检查 connected_slaves 和同步状态)。修复副本上的网络/访问问题,使其连接到主节点。要故障转移到特定目标,使用 FAILOVER TO host port,并确认该副本符合条件。
同一数据库的其他条目
- ERR Background append only file rewriting already in progressAOF rewrite already in progress(AOF 重写已在进行中)
- IOERR error or timeout reading from target instanceMIGRATE: I/O error or timeout to target(MIGRATE:与目标之间发生 I/O 错误或超时)
- ERR Error compiling script (new function)Error compiling Lua script(编译 Lua 脚本出错)
- ERR invalid expire time in 'set' commandinvalid expire time in SET(SET 中的过期时间无效)