67,986
社区成员
DN服务异常
a、cm_ctl query -Cvipd查看对应的DN分片是否有主(Primary),如果无主,全部是Standby,通常是DN重启后Redo没有完成,需要等待redo完成,如果5分钟还没恢复,执行处理步骤1;如果有DN主,进入下一步b
b、确认DN主备间网络是否正常,登录到主DN所在节点,如果无法登录,则需要排查主DN所在节点网络是异常,否则执行c
c、在主DN上执行ping xxx.xxx.xxx.xxx(备DN ip) 确定主备DN间网络是否正常
d、确认备DN节点的磁盘是否正常、磁盘空间是否充足
e、登录到备DN所在节点,ps -ux | more |grep datanode 查看备DN进程的启动时间,确认备DN是否重启过,如果重启过, 则按照Unknow处理流程中的d、e、f、g、h去定位进程重启的原因。如果未重启、按照处理步骤1处理
DN服务异常,发生主备倒换
问题分析及定界
a、如果集群中有DN的状态为Unknown, 则首先按照Unknown的步骤,对Unknown的节点进行分析处理
b、如果不存在Unknown节点,则登录到原主DN节点,cd $GAUSSLOG/pg_log/dn_xxx 进入DN日志目录,ls -lrt 并查看告警发生时间,是否新产生了一份日志文件,如果有,则查看上一份日志文件,查看是否有ERROR、Fatal等导致重启的原因,然后按照定位步骤c继续分析;如果没有,按照处理步骤1处理
c、按照Unkown的步骤d、e、f,查看是否有core文件或者ffic文件生成。
1、观察5分钟,查看集群是否恢复正常,如果可恢复正常,则表示DN主备切换完成,观察集群状态和业务是否恢复,后续定位主备切换原因。如果没有,可以联系华为工程师处理。
DN服务异常,DN状态为Disk Damaged
a、确认磁盘是否损坏,如果损坏,则按照处理步骤1
b、如果磁盘无问题,则查看DN数据目录是否被删除,或者被重命名,或者目录的读写权限以及用户组权限是否正确,参照处理步骤2处理 通过命令ps ux | grep “--datanode” 查询DN的数据目录
查看DN数据目录和权限:
c、有可能是磁盘IO性能差,或者磁盘IO压力太大,无法正常读写,导致检测认为磁盘故障,此时降低业务压力,或更换IO更高的磁盘。 上述3种情况查看cm_agent日志,cd $GAUSSLOG/cm/cm_agent , 找到对应时间点的cm_agent-xxx.log日志,会有如下记录: data path disc writable test failed, 之后DN进程会被杀死 killing datanode by force
1、联系I层尝试修复磁盘故障,如果短时间无法解决,则联系华为工程师,执行节点替换,使用另一个磁盘无问题的节点替换该问题节点
2、如果目录被重命名或权限不正确,恢复目录和权限(读写权限、用户组权限),如果DN状态仍有问题,执行节点修复,修复该DN节点。
DN服务异常,DN状态为port conflicting
a、登录到该DN节点,su - Ruby 进入Ruby用户,ps -ux | more | grep datanode, 查看是否有两个名字完全相同的DN进程,如果有则联系华为工程师;如果没有,则按照步骤b继续定位
b、如果是首次部署的集群,在Ruby用户执行cm_ctl query -Cvidp,查看故障节点上,是否数据库实例之间存在端口相同导致冲突的情况,如果有,按照处理步骤1处理,如果没有,则按照步骤c继续定位
c、lsof -i | grep xxxx(xxxx为DN的端口号),查看是否有其他进程占用了数据库需要的端口,如果有,则按照处理步骤2处理。
1、联系集群部署人员,确认并将端口号修改为正确的端口号。
2、联系集群安装部署人员及进程的拥有者,确认并修改该进程的端口号或者数据库的端口号