redis 从库数据同步失败——爬坑记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis 从库数据同步失败——爬坑记相关的知识,希望对你有一定的参考价值。

     早上上班,发现redis的一个slave节点down了一个。对,没错,不是数据不同步那么简单,连redis服务进程都自动退出了。
             场景:主从同步模式
             master-->slave1
             master-->slave2
             master-->slave3
             info状态: slave1,slave2 都是state=online,offset=5744884846,lag=1正常状态,slave3是state=send_bulk,offset=0,lag=0

             1、重启redis操作
             日志内容:WARNING overcommit_memory is set to 0
                                  WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value
                                                        WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. 
            a:第一个解决:
            编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效                             echo 1 > /proc/sys/vm/overcommit_memory
            b:原因就是因为128太小了。执行echo 511 > /proc/sys/net/core/somaxconn

命令就把这个问题解决了。但是这个只是暂时的。如果想要永久解决,打开ietc/sysctl.conf
vim /etc/sysctl.conf
net.core.somaxconn= 1024
sysctl -p 永久生效
c: 需要解决THP的内存问题 :
echo never > /sys/kernel/mm/transparent_hugepage/enabled
重启日志报错:Short read or OOM loading DB. Unrecoverable error, aborting now.
处理:rm -rf dump.rdb 快照文件后重启

            重启redis slave3后出现同步的异常:
            master日志:Connection with slave 47.254.xx.xxx:6380 lost.
            slave3日志:I/O error trying to sync withMASTER: connection lost‘
            现象:slave3上每次同步完成rdb后会不断循环同步 即:从库周期性的在产生temp-rewriteaof-xxx.rdb文件 不断重复  文件为375M
            client-output-buffer-limit参数设置的问题,默认为256Mb 64MB 0 
            控制台设置增大限制:2G
            CONFIG SET client-output-buffer-limit "slave 2147483648 1073741824 300"
            配置文件redis.conf 
            client-output-buffer-limit slave 2048mb 1024mb 300
            (主从都配置一下)
            命令行设置生效,不需要重启。
            问题还是存在,每次同步完后不断同步
            最后解决:从slave2上将rdb文件拷贝到slave3的redis目录下重启,解决。
            具体原因。。。。。有待探索

以上是关于redis 从库数据同步失败——爬坑记的主要内容,如果未能解决你的问题,请参考以下文章

微信支付(公众号)爬坑记,包含 total_fee 失败和 JSAPI 签名验证失败等等

Vuejs爬坑记

单片机爬坑记-02-资源紧缺

Spring-Data-JPA 爬坑记

vue-router爬坑记

单片机爬坑记-03-编译环境