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

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: drds 问题处理总结

版本:

阿里云专有云v2版本

问题现象:

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

image

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

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

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

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

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

image
image

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

image
image

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

向drds研发同学咨询,发现drds的java进程pid内容和/home/admin/drds-server/bin/tddl_3306.pid内容比较发现进程的pid是不一致。
image
image

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

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

image

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

image

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

image

解决方法:

经开发确认为,这个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进程;

重启之后,问题解决
image
image


相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
相关文章
|
5天前
|
算法 调度 数据安全/隐私保护
Docker Swarm 中Manager(管理节点)
【10月更文挑战第9天】
28 2
|
9天前
|
负载均衡 监控 安全
如何管理 Docker Swarm 集群和节点
【10月更文挑战第7天】
21 3
|
2天前
|
Docker 容器
|
2天前
|
Docker 容器
docker swarm 移除 Worker 节点
【10月更文挑战第12天】
11 5
|
2天前
|
网络安全 Docker 容器
|
3天前
|
监控 Docker 容器
docker swarm 如何管理 Worker 节点
【10月更文挑战第11天】
10 4
|
3天前
|
负载均衡 算法 调度
docker swarm Worker 节点的角色
【10月更文挑战第11天】
11 3
|
3天前
|
安全 调度 数据安全/隐私保护
docker swarm中work节点注意事项
【10月更文挑战第11天】
12 2
|
5天前
|
算法 调度 Docker
Docker Swarm 中Nodes(节点)
【10月更文挑战第9天】
15 2
|
5天前
|
存储 Kubernetes 调度
Docker Swarm 中Worker(工作节点)
【10月更文挑战第9天】
20 1