GaussDB CN故障-状态ReadOnly
- 故障现象
查询集群状态,CN组件状态为ReadOnly状态,产生CN服务异常告警。
- 故障原因
可能原因有以下:
CN数据目录被占满。
- 处理方法
步骤 1 登录任意节点,查询集群状态。
su - Ruby
cm_ctl query -Cvd

如上图,集群状态为Degraded,cn_5001组件只读,状态为ReadOnly。因为多个CN之间对等,故CN只读只针对当前CN节点,因此可确定只读的CN节点。
步骤 2 登录只读的CN节点,查询磁盘使用情况。
df -h

如上图,CN所在目录的磁盘使用率为86%,超过默认85%的只读阈值。确认磁盘使用超过阈值之后,继续步骤3。
步骤 3 进入当前节点的CMS数据目录,查看修改磁盘检测参数值。
1.CMS数据目录可通过查询集群状态获取。
cm_ctl query -Cvd

如上图,/opt/gaussdb/engine/cm/cm_server CMS的数据目录。
2. 查询磁盘阈值。
cd /data/gaussdb/engine/cm/cm_server
grep 'datastorage_threshold_value_check' cm_server.conf

如上图,datastorage_threshold_value_check=85。
步骤 4 确认只读的CN节点以及参数阈值后,首先需要通过修改datastorage_threshold_value_check参数阈值,第一时间恢复业务。
gs_guc reload -Z cmserver -N all -I all -c "datastorage_threshold_value_check = 90"
须知:
HCS场景执行gs_guc命令需要进入沙箱。
修改参数为高危操作,执行前需联系华为技术支持确认。
datastorage_threshold_value_check参数修改后的值需大于当前磁盘使用率,且该参数值不可设置过大,建议不超过90。
步骤 5 由于集群检测磁盘的周期默认为600s,若想要即可生效,可执行以下命令取消CN只读。
gs_guc reload -Z coordinator -N nodename -D dataPath -c 'default_transaction_read_only = off'

说明:
HCS场景执行gs_guc命令需要进入沙箱。
nodename为当前节点的hostname,可通过cm_ctl query -Cvd查询获取。
dataPath为当前CN的数据目录,可通过cm_ctl query -Cvd查询获取。
步骤 6 进入到只读CN节点排查导致CN目录被占满的原因。
du - sh *
如因数据量增长导致,则执行CN扩容或者扩磁盘。
如因人为上传的超大文件导致,需删除超大文件。
步骤 7 CN目录磁盘使用率恢复正常值以后,恢复datastorage_threshold_value_check参数值为85。
gs_guc reload -Z cmserver -N all -I all -c "datastorage_threshold_value_check = 85"
说明:
HCS场景执行gs_guc命令需要进入沙箱。
步骤 8 若以上均不涉及,联系华为技术支持。
----结束
- 点赞
- 收藏
- 关注作者
评论(0)