GaussDB DN故障-状态Unknown
- 故障现象
查询集群状态,DN组件状态为Unknown,产生DN服务异常告警。
- 故障原因
可能原因有以下:
cm_agent无法连接DN。
- 处理方法
步骤 1 登录故障DN节点,切换至Ruby用户,查询集群状态。
su - Ruby
cm_ctl query -Cvd

如上图,dn_6008状态为Unknown。
步骤 2 如DN长时间处于Unknown状态,如需要快速恢复,则可使用以下命令处理,如需要先定位则跳过此步骤。
1. 查询故障DN的PID
ps ux | grep dn_6008 | grep -v grep
dn_6008为示例,实际执行时需要更换为当前故障的DN。
2. 重启DN进程。
kill -9 pid
pid为当前Unknown状态DN的进程的pid。
须知:kill -9为高危操作,执行前需联系华为技术支持确认。
步骤 3 查看当前节点的cm_agent日志,打开对应时间点的cm_agent-***.log日志。
如对应时间点的日志已被压缩,则查看对应的cm_agent-****.log.gz日志。
cd $GAUSSLOG/cm/cm_agent
vim cm_agent-*.log
步骤 4 cm_agent日志中搜索关键词1 timeout expired。
如存在,表明cm_agent连接不到DN,继续步骤5。
如不存在,则联系华为技术支持。

步骤 5 当前节点执行以下命令,获取故障DN的堆栈信息,并联系华为技术支持。
gs_ctl stack -D datapath > /home/omm/dn_6008_stack.log

说明:
2.1(V500R002C10)以后版本,可使用gs_stack命令将堆栈信息重定向到指定文件。
datapath为当前DN的数据目录,可通过cm_ctl query -Cvd获取。
HCS场景,执行gs_stack需要进入沙箱。
步骤 6 若以上都不涉及,联系华为技术支持。
----结束
- 点赞
- 收藏
- 关注作者
评论(0)