GaussDB(DWS)快照失败案例(缩容后导致备份失败)
【问题描述】
controller日志及agent日志无明显报错信息,查看沙箱内/home/Ruby目录存在core文件,堆栈如下:
注:快照日志说明及排查步骤参考如下案例说明
https://bbs.huaweicloud.com/blogs/382926
【分析步骤】
1、解析core堆栈
1) 解压tar包复制符号表到gs_roach文件所在目录
tar解包路径: /var/chroot/DWS/manager/app/bin
mv /var/chroot/DWS/manager/app/bin/symbols/bin/gs_roach.symbol /var/chroot/DWS/manager/app/bin
2) gdb解core
gdb /var/chroot/DWS/manager/app/bin/gs_roach {core文件路径} -- 注意是沙箱外路径
3)若gdb界面符号表加载失败异常,需在gdb中执行命令:set solib-search-path /var/chroot/DWS/manager/app/lib,添加后执行bt命令,core正常解析
core分析
在gs_roach中,
g_nodeHeader.nodeCount 表示节点总数 = 12
g_nodeHeader.node 表示节点数组总长度 = 28
显然两个值不匹配,core原因为g_nodeHeader.node数组越界
分析值不匹配的原因
1. 查询静态信息,node编号为28,但是总count只有12
2. 在CN-1-1节点执行命令cm_ctl view |grep -w node发现node编号不连续
问题根因
集群缩容之后,静态配置文件中node编号不会发生改变。备份时需要获取集群状态,再利用静态配置文件中的node编号作为偏移,则会导致数组越界
解决方案
临时方案
刷新node编号为连续id,注意python脚本需要上传到所有节点上,可以上传到一个节点后通过scp命令传到其他节点
gs_ssh -c "scp Ruby@{hostName}:/home/Ruby/refresh_node_id.py /home/Ruby/"
https://clouddevops.huawei.com/domains/327/wiki/32/WIKI2025010201529
实施后验证
1. 在CN-1-1节点执行命令cm_ctl view |grep -w node,node编号已变为连续编号
2. 集群状态正常
3. 快照进程可以正常拉起
- 点赞
- 收藏
- 关注作者
评论(0)