67,996
社区成员
a、cm_ctl query -Cvipd查看哪些DN在building,并且会显示build的进度:如:building(80%), 连续查询cm_ctl query -Cvipd观察build进度。 该问题通常发生在业务压力非常大,数据导入太快,DN备的同步读跟不上DN主,DN主日志被回收,导致备DN只能做全量build,当集群重启时更容易发生此问题。此时需要考虑设置打开流控和并行redo等,继续按照步骤b进行定位。
b、登录报错节点,su - Ruby, cd $GAUSSLOG/bin/gs_ctl/ 查看gs_ctl日志确定当前处于build的哪个阶段,以及是增量build还是全量build,如果是全量build, 日志中会有FULL_BUILD的字符串,全量build的时间会比增量build长。 继续按照步骤c定位。
c、ps ux | grep gaussdb,查看dn进程的启动时间,判断其是否重启过,如果重启过,则参照场景2 DN状态为unknown中的步骤,诊断dn重启的原因
DN服务异常,DN状态为build failed
a、登录报错节点,su - Ruby, cd $GAUSSLOG/bin/gs_ctl/ 查看gs_ctl日志确定build失败的原因,如果报错信息中出现could not connect to server,则首先按照b继续排查
b、检查网络连接情况,ping xxx.xxx.xxx.xxx(主DN ip),如果无法ping通,则按照步骤1处理,否则继续按照步骤c定位
c、进入数据目录,数据目录就是cm_ctl query -Cvid查看的结果中实例对应的目录,查看pg_hba.conf的设置是否正确,需要确认主dn的ip是否正确,method是否设置为trust,如果不正确,按照处理步骤2处理,如果正确,按照步骤d继续定位
d、连接到步骤a日志中,本地节点需要连接的ip对应的节点,既本DN对应的主DN节点,查看$GAUSSLOG/bin/gs_ctl/下面同时间的日志,查看是否有报错信息,如果有,则按照处理步骤3处理
1、联系网络运维人员修复.
2、联系华为工程师,确定不设置成trust的原因,并确定是否需要修改
3、将主备DN对应的报错信息截屏发送给华为工程师,用来做进一步分析
dn服务异常,告警DN状态为CoreDump
a、登录到节点后,su - Ruby进入Ruby用户,进入沙箱: 执行如下命令/usr/sbin/chroot --userspec=Ruby:Ruby /var/chroot /bin/bash source /etc/profile && source ~/.bashrcb、cat /proc/sys/kernel/core_pattern 查看里面是否是路径且路径为Ruby用户可访问路径,如果是,则执行步骤b, 否则执行c
b、进入该路径并查看是否有core文件生成,如果有core文件生成,则执行处理步骤1
c、执行cm_ctl query -Cvipd, 找到当前dn的数据目录,进入数据目录,查看是否有core文件生成,如果有则执行处理步骤1
d、cd $GAUSSLOG/ffic_log 查看是否有ffic日志,如果存在ffic日志,则执行处理步骤2
将core文件下载,并获取高斯内核版本号(gaussdb -V命令),发送给华为工程师 2. 将ffic日志下载,发送给华为工程师
dn服务异常,告警DN状态为ReadOnly
a、df -h 查看磁盘空间分配情况,cm_ctl query -Cvd查看DN数据目录路径,确认所在磁盘空间使用率。
b、登陆cmserver主所在节点,cd $GAUSSLOG/cm/cm_server,根据告警时间点,查看cm_server-xxx.log,搜索关键字 Set database to read only mode, 此日志表示当时磁盘使用率超过阈值,DN被设置为只读状态。
c、登陆cmserver主节点,进入cmserver数据目录,到cm_server数据目录查看cm_server.conf 配置文件,查看参数datastorage_threshold_value_check的值,当磁盘使用率超过该参数值时,DN就会被设置为只读,避免磁盘被写满。比较DN磁盘使用率是否超过该参数值,如果是,则按照处理步骤1处理,如果否,则按照步骤2处理
联系华为工程师,确定是否需要扩容或者删除同磁盘的无用文件
参考DN只读处理方法