作者:任坤
现居珠海,先后担任专职 Oracle 和 MySQL DBA,现在主要负责 MySQL、mongoDB 和 Redis 维护工作。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
背景
线上有一套6节点 redis cluster ,6分片 * 2副本,每个节点上2个实例,端口号分别为7000和7001。
腊月29凌晨,有个节点硬件故障导致自动重启,重启后该节点上的实例变成从库,却迟迟无法完成和新主库的同步进而触发报警。
redis 版本为5.0。
诊断
登录该节点,查看 redis 的日志
22996:S 20 Jan 2023 07:27:15.091 * Connecting to MASTER 172.18.2.46:7001
22996:S 20 Jan 2023 07:27:15.091 * MASTER <‐> REPLICA sync started
22996:S 20 Jan 2023 07:27:15.106 * Non blocking connect for SYNC fired the event.
22996:S 20 Jan 2023 07:27:15.106 * Master replied to PING, replication can continue...
22996:S 20 Jan 2023 07:27:15.106 * Trying a partial resynchronization (request 174e5c92c731090d3c9a05f6364ffff5a70e61d9:7180528579709).
22996:S 20 Jan 2023 07:35:29.263 * Full resync from master: 174e5c92c7310

文章描述了一次Redis集群中由于硬件故障导致的主从同步问题,详细分析了partialresync失败和fullresync后连接中断的原因,发现是由于repl-backlog-size不足和repl-timeout设置过小。解决方案是增大repl-timeout,问题得以解决。
最低0.47元/天 解锁文章
1461

被折叠的 条评论
为什么被折叠?



