因为业务上的一些问题,需要切换group中的主备,调整group结构,在进行测试的时候,有个节点slave执行同步的时候一直报错,尝试了几遍都没成功



查看slave日志
4294:S 27 Nov 13:16:34.334 # Connection with master lost.
查看master日志
4304:M 27 Nov 13:01:36.348 * Background saving terminated with success4304:M 27 Nov 13:02:31.420 * Synchronization with slave 172.19.0.93:6379 succeeded4304:M 27 Nov 13:06:13.259 # Disconnecting timedout slave: 172.19.0.93:63794304:M 27 Nov 13:06:13.259 # Connection with slave 172.19.0.93:6379 lost.
分析原因:
主从复制一般影响因素是两个原因:
1. repl-timeout,该参数的默认配置是60s,当复制数据的时间操作60s,master就会认为同步超时主动断开连接,也就产生了connect with master lost.
2. client-output-buffer-limit,该参数决定了客户端输出缓冲区内存使用量,默认配置
client-output-buffer-limit slave 256mb 64mb 60
从报错看
问题的原因是因为超时,查看repl-timeout参数设置
127.0.0.1:6379> config get repl-timeout1) "repl-timeout"2) "60"
修改timout时长
127.0.0.1:6379> config set repl-timeout "300"OK127.0.0.1:6379> config get repl-timeout1) "repl-timeout"2) "300"
再次同步

成功
注意:当数据同步完成后最好将配置修改为原配置,避免可能造成其他问题
127.0.0.1:6379> config set repl-timeout "60"OK
文章转载自数据库这点小事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




