写点什么

GaussDB CN 服务异常实例分析

  • 2022-11-18
    中国香港
  • 本文字数:2177 字

    阅读完需:约 7 分钟

本文分享自华为云社区《【实例状态】GaussDB CN服务异常》,作者:酷哥。

确认节点状态


先通过 OPS 确认节点状态是否已经恢复,或登录后台执行 cm_ctl query -Cv 确认集群是否已经 Normal。如果状态已经为 normal,表明故障已经恢复,集群正常,不再影响业务。 确认是否需要分析故障的具体原因,如果需要,继续向下跟随文档进行分析 首先确认是否是底层故障如虚拟机故障、网络故障、存储故障,排除底层故障后再继续定位。

定位导图总览


CN 进程 normal

问题现象


cm_ctl query -Cvd 查询集群状态,告警 CN 显示 normal。


问题分析与定界


step1.登录告警 CN 节点,su 进入集群用户,ps ux | grep 'gaussdb --coordinator',查看 CN 进程启动时间,确认 CN 是否重启,如果没有重启参考处理方法一(结束),若重启则跳至 step2


step2. cd $GAUSSLOG/cm/cm_agent


step3. 打开对应时间点的 vi cm_agent-*.log


step4.查看日志中对应时间点是否含有关键词 cn restart,如果同时有 process (gaussdb 17391) is T (STOPPED) 类似日志,说明进程 hang 住了,跳至 step6


step5.若日志中没有 cn restart 关键词,查看日志中对应时间点是否含有关键词 CN START.有则跳至 step10


step6.登录到 CMS 主节点 cd $GAUSSLOG/cm/cm_server


step7.打开对应时间点的 cm_server*.log


step8.查看日志中对应时间点是否含有关键词 restart %u, there is not report msg for %d sec. 如果有,则 CN 重启原因为心跳超时,参考处理步骤方法一(结束 )


step9.查看日志中对应时间点是否含有关键词 phony dead times (%d) already exceeded, will restart...则 CN 重启原因为进程僵死,参考处理步骤方法一(结束)


step10.cd $GAUSSLOG/cm/cm_agent,打开对应时间点的 system_call-*.log,查看对应时间点是否有关键词 can not bind ip,如果没有则跳至 step12


step11.如果有关键词 can not bind ip,则 CN 重启原因为 CN IP 丢失,参考处理步骤方法二 (结束)

step12.cd $GAUSSLOG/pg_log/cn_XX


step13.查看相关 postgresql_xxx.log, 查看相关时间点是否有关键词 PANIC,如果有则原因为 core,参考处理步骤方法一。


step14.查看 CN 数据目录下是否有 core 生成,如果有则原因为 core,参考处理步骤方法一。


step15.查看 $GAUSSLOG/ffic_log 日志,查看对应时间点是否有打印日志,如果有则原因为 core,参考处理步骤方法一。

处理步骤


方法一:联系华为工程师进行定位


方法二:检查故障节点虚拟 IP,浮动 IP。如有问题,请排查管控 HA 是否关闭。

CN 进程 down

问题现象


cm_ctl query -Cvd 查询集群状态,告警 CN 显示 down。

问题分析与定界


step1. cd $GAUSSLOG/cm/cm_agent


step2.打开对应时间点的 cm_agent-*.log


step3.查看日志中对应时间点是否含有关键词 cn_disk_damage=1,如果有,则原因为数据/日志磁盘损坏或磁盘满,参考处理步骤方法一。


step4.查看日志中对应时间点是否含有关键词 port_conflict=1,如果有,则原因为端口冲突,参考处理步骤方法二。


step5.查看日志中对应时间点是否含有关键词 cn_nic_down=1,如果有,则原因为网卡故障,参考处理步骤方法三。


step6.查看日志中对应时间点是否含有关键词 cn_manual_stop=1,如果有,则原因为手动停止,参考处理步骤方法四。

处理步骤


方法一:查看对应故障 cn 的磁盘是否有故障,如无故障则检查是否磁盘满。


方法二:lsof -i:端口号,查看端口占用进程,联系华为工程师定位处理


方法三:联系 I 层查看是否存在网卡故障


方法四:查看是否有人手动停止

CN 进程 deleted

问题现象


cm_ctl query -Cvd 查询集群状态,告警 CN 显示 deleted。

问题分析与定界


step1.确认当时时间故障 CN 所在节点是否正常,是否主机故障,重启、掉电,断网等,参考处理步骤方法一。


step2.登入 CMS 主节点,cd $GAUSSLOG/cm/cm_server,打开对应时间点的 cm_server*.log


step3.如果日志中有关键词 isCnDnDisconnected=1, 则原因为 CN 与所有主 DN 断连,参考处理步骤方法二。


step4.如果日志中有关键词 cn_down_to_delete=1,则原因为 CNdown 导致,参考处理步骤方法三。


step5.如果日志中有关键词 cn instance restarts within ten minutes is more than,则原因为 CN 进行重启 导致,参考处理步骤方法四。

处理步骤


方法一:联系 I 层查看主机故障原因,排除故障后,在管控点击节点修复修复 cn 节点。


方法二:在管控点击[节点修复]修复 cn 节点,联系华为工程师处理


方法三:在管控点击[节点修复]修复 cn 节点,参考第二章 CN DOWN 进行定位


方法四:在管控点击[节点修复]修复 cn 节点,参考第一章 CN NORMAL 进行定位

CN 进程 readonly

问题现象


cm_ctl query -Cvd 查询集群状态,告警 CN 显示 readonly。

问题分析与定界


step1、登录到只读 CN 节点后,su - Ruby 进入 Ruby 用户, 执行/usr/sbin/chroot --userspec=Ruby:Ruby /var/chroot 进入沙箱,source /etc/profile 设置环境变量


step2、df -h 查看磁盘空间分配情况,cm_ctl query -Cvd 查看 CN 数据目录路径,确认所在磁盘空间使用率。


step3、登陆 cmserver 主节点,进入 cmserver 数据目录/var/chroot/usr/local/cm/cm_server,查看 cm_server.conf 配置文件,查看参数 datastorage_threshold_value_check 的值,当磁盘使用率超过该参数值时,CN 就会被设置为只读,避免磁盘被写满。比较 CN 磁盘使用率是否超过该参数值,如果是,则按照处理步骤 1 处理,如果否,则按照步骤 2 处理。

处理步骤


1、联系华为工程师,确定是否需要扩容或者删除同磁盘的无用文件

2、参考 CN 只读处理方法


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 4
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
GaussDB CN服务异常实例分析_数据库_华为云开发者联盟_InfoQ写作社区