ERM
redis
network_error
ai_generated
partial
副本无盘复制失败:等待主节点 RDB 文件超时
ERR Replica diskless replication failed: timeout waiting for RDB file from master
ID: redis/replica-diskless-replication-timeout
82%修复率
87%置信度
1证据数
2023-06-12首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 6.0 | active | — | — | — |
| 7.0 | active | — | — | — |
| 7.2 | active | — | — | — |
根因分析
副本在无盘复制期间未在 repl-timeout 内收到完整的 RDB 文件,通常由于网络拥塞或主节点 I/O 缓慢。
English
The replica did not receive the full RDB file within repl-timeout during diskless replication, often due to network congestion or slow master I/O.
官方文档
https://redis.io/docs/latest/operate/oss_and_stack/management/replication/解决方案
-
使用 'redis-cli --latency' 检查主节点和副本之间的网络延迟。如果超过 100ms,考虑将其放在同一数据中心或使用更快的链路。
-
在主节点上运行 'CONFIG SET repl-timeout 120' 和 'CONFIG SET repl-backlog-size 100mb' 以容纳更大的 RDB 文件。
无效尝试
常见但无效的做法:
-
55% 失败
Falls back to disk-based replication, which can be slower and cause disk I/O spikes.
-
65% 失败
May mask underlying network issues; can cause long failover delays.
-
75% 失败
Temporary fix; timeout will recur if network or master issues persist.