暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

openGauss--扩容失败问题定位

原创 没睡午觉 2025-01-18
607

问题描述

客户使用6.0.0LTS版本数据库,进行扩容,扩容执行失败

问题定位

一、节点ip对应多个hostname

1.扩容失败报错如下:

根据报错信息查看代码,在相应位置添加日志打印,发现是ip和hostname的映射有问题,因此在通过ssh远程执行命令时报错。

如果也是使用6.0.0版本的用户,可以排查一下是否也需要修改,查看是否也存在该问题。(该问题一般是由于在一台服务器上起了多了业务,除了数据库外。有其他业务也创建了互信,但是记录的ip hostname与数据库记录的不同导致),通过查看文件即可确认,如下所示:

cat /etc/hosts

2.查看社区OM仓,发现已经有相关的修改pr

https://gitee.com/opengauss/openGauss-OM/pulls/954/files

https://gitee.com/opengauss/openGauss-OM/pulls/969/files,该pr中SshTool.py脚本的修改

3.通过git工具将修改apply到6.0.0LTS版本中

4.编译OM

cd openGauss-OM
sh build.sh -3rd /xxxxxx/binarylibs     路径为3方库路径,3方库可在openGauss-server的readme中找到
编译好的报就在package目录下面

5.本地验证

两种场景下验证:

1)已安装的环境,替换OM包验证

5.1 下载官网安装包安装1主2备环境

192.168.0.19/20/21

5.2 缩容21节点,成功

gs_dropnode -U lzf_sdr -G lzf_sdr -h 192.168.0.21

5.3 修改/etc/hosts文件,是192.168.0.21对应多个hostanme,改为

192.168.0.21 test
192.168.0.21 sdr-0006
192.168.0.21 test

5.4 清理21节点数据库

gs_uninstall --delete-data -L
rm -rf /data2/lzf_sdr/omm; rm -rf ENVFILE

5.5 在19节点执行扩容,预期应该失败

结果:失败

5.6 修改om代码,重新编译,并且替换OM安装包

替换OM的两个文件,重新解压om包,解压之后会自动覆盖之前的script目录

5.7 拷贝xml文件(原来的xml不要删),清理掉删除21节点信息

在主节点重新执行preinstall,-X指定的为新的xml文件。通过preinstall将之前安装的OM脚本替换掉

结果:执行成功

5.8 执行扩容,执行成功

2)重新安装

只需替换掉安装包中OM包,安装之后进行扩容测试即可

6.验证无问题之后发给客户

二、bclinux系统安装openGauss失败

安装包发给客户之后,客户环境进行验证,客户反映执行安装仍然失败

1、报错如下:

问题如下:在扩容节点上找不到文件ENVFILE;

扩容节点执行预安装gs_preinstall失败

2、问题定位

2.1 在扩容节点上找不到文件ENVFILE问题:

2.1.1 首先查看预安装命令以及报错的路径是否正常,常看之后无异常

2.1.2 查看代码发现,在预安装失败后,失败节点会自动清理环境变量问题,所以该报错是预安装失败导致

2.2 预安装失败问题

2.2.1 根据图中报错,会将结果重定向到gs_local.log日志中,查看该日志,未发现异常(主节点日志正常,待扩容节点无该日志生成)

2.2.2 查看gs_expersion扩容工具的日志,在$GAUSSLOG/om路径下,在该日志下发现异常,报错:不支持bclinux系统安装(忘记截图了...)

2.2.3 之前帮助客户定位过该问题,给客户提供过安装包以及修改方式;咨询客户对接的同事,发现安装时是手动改的om脚本,没有把修改同步到安装包里面(之前对接的客户同事离职了,新同事按照文档改的)。而在扩容的时候,om工具会向扩容节点将安装包传到扩容节点(不是发送的他们修改后的脚本,是发送的安装包),因此确认是该问题导致。

2.2.4 重新编译OM,将两个问题的修改都同步到6.0.0LTS版本中,验证后发给客户。

3、其他问题

其间还出现了一个问题,缺少.so文件

3.1 查看是否存在该文件

find / -name libffi.so*

结果如下:

3.2 该问题为.so文件的版本不一致,查找资料发现libffi.so.7与libffi.so.6兼容,因此可以创建软连接解决

ln -s /usr/lib/libffi.so.7 /usr/lib/libffi.so.6

三、扩容后扩容节点启动失败问题

客户验证,之前的问题并未报错,但是在最后一步拉起扩容节点的时候,拉起失败

1、报错如下

2、问题定位

2.1 查看数据库状态,如下

初步确认该节点cm_server和数据库进程启动都存在问题

2.2 到对应节点上面进行查看

ps ux

查看该节点进程启动情况,发现cm相关的cm_agent、cm_server、om_monitor进程以及数据库进程都没有,因此需要查看om_monitor日志

前情提要:数据库启动顺序如下
定时任务 -> om_monitor -> cm_agent -> cm_server、数据库、自定义资源
(crontab -l查看定位任务无异常,因此需要查看om_monitor日志)

om_monitor日志中找到报错(忘记截图了,截一下对应的代码),发现是设置打开的最大句柄数不够,最小需要640000:

查看命令

ulimit -n  或   ulimit -a

2.3 解决方法

修改/etc/security/limits.conf 文件,进行配置

omm       soft    as  unlimited
omm       hard   as unlimited
omm       soft   nproc unlimited
omm       hard   nproc unlimited

修改之后,该节点会自动拉起(需要等待一段时间,定时任务1分钟一次拉起om_monitor)

问题总结

至此,该问题终于解决。(o(╥﹏╥)o)

最后修改时间:2025-01-18 16:17:44
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论