GaussDB DN故障-状态ReadOnly
- 故障现象
查询集群状态,DN组件状态为ReadOnly,产生DN服务异常告警
- 故障原因
可能原因有以下:
DN数据目录磁盘使用超过阈值。
- 处理方法
步骤 1 登录任一节点,查询集群状态。
su - Ruby
cm_ctl query -Cvd

如上图,DN组件全部ReadOnly。
步骤 2 当前DN节点,查看磁盘空间分配情况,查看各DN节点DN数据目录所在磁盘空间使用率。
gs_ssh -c "df -h"

如上图为集群内所有节点的磁盘使用情况。
说明:
HCS场景,执行gs_ssh命令需要进入沙箱。
步骤 3 进入当前节点的CMS数据目录,查看修改磁盘检测参数值。
CMS数据目录可通过查询集群状态获取。
cm_ctl query -Cvd

如上图,/opt/gaussdb/engine/cm/cm_server CMS的数据目录。
cd /data/gaussdb/engine/cm/cm_server
grep 'datastorage_threshold_value_check' cm_server.conf

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

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