drds节点异常处理,docker节点进程一直重启

版本:

阿里云专有云v2版本

问题现象:

同步任务反馈drds无法连接数据库,经排查drds manager 发现有一个节点异常 

drds节点异常处理,docker节点进程一直重启

排查过程:
向现场运维组反馈该异常后,为了确保生产环境的使用,确定通过drds manager进行白屏重启。点击重启后,无法返回成功界面,又强制重启,还是没有响应。

然后尝试通过命令行连接到该docker,显示连接失败,无法ping通该docker。

通过天目发现该docker所在的物理机报机器故障。通过天目登录到远程机房主机进行重启,依然显示连接异常。(期间是对这个docker重启了好几次)

最后针对物理机故障的问题向客户反馈维修,物理机正常之后发现该docker还是连接异常,通过天目发现报错为检测失败。
drds节点异常处理,docker节点进程一直重启

登录到该docker节点上发现,java进程一直被重新拉起。时有时无。

drds节点异常处理,docker节点进程一直重启
drds节点异常处理,docker节点进程一直重启

并且在该drds上的tddl目录下发现大量的gc 日志。

drds节点异常处理,docker节点进程一直重启
drds节点异常处理,docker节点进程一直重启

从而说明了该docker的java进程一直被不断的重拉,每起来一次就会产生一个gc日志。
并且日志里面也只是存储了一些简单的信息

向drds研发同学咨询,发现drds的java进程pid内容和/home/admin/drds-server/bin/tddl_3306.pid内容比较发现进程的pid是不一致。
drds节点异常处理,docker节点进程一直重启
drds节点异常处理,docker节点进程一直重启

执行健康检查的脚本,可以判断服务是否正常,执行发现service is down

排查是否有进行手动kill,结果是没有。

drds节点异常处理,docker节点进程一直重启

经研发同学经验排查,发现该docker的nameserver有多个127.0.0.1

drds节点异常处理,docker节点进程一直重启

而正常的docker节点下,是只有一个的,如下:

drds节点异常处理,docker节点进程一直重启

解决方法:

经开发确认为,这个drds 的 docker节点在 专有云v2版本的bug。在频繁重启容器超过3次后,之后再每次重启容器都会在resolv.conf这个文件里面重复写入127.0.0.1。就会导致进程一直不断的被拉起。
根据研发的建议:
1、    先把多余的127.0.0.1删除  保留一个;

2、 把bin目录下的pid文件删除掉;
3、 停止drds-server进程;
4、 按照sudo -u admin sh /home/admin/drds-server/bin/startup.sh -p 3306 -D启动drds 的java进程;

重启之后,问题解决
drds节点异常处理,docker节点进程一直重启
drds节点异常处理,docker节点进程一直重启


上一篇:mysql学习阶段性总结


下一篇:Greenplum 优化CASE - 对齐JOIN字段类型,使用数组代替字符串,降低字符串处理开销,列存降低扫描开销