KingbaseES V8R6集群运维案例之---sys_monitor.sh start启动动态库错误

发布时间 2023-09-18 16:19:06作者: KINGBASE研究院

案例说明:
在KingbaseES V8R6集群部署了postgis后,执行sys_monitor.sh start启动集群时,出现动态库错误,如下图所示:

适用版本:
KingbaseES V8R6

操作系统:
Kylin V10 Server

一、问题分析
1、手工执行sys_ctl启动数据库服务,启动正常。

2、执行sh -x sys_monitor.sh start查看脚本启动过程:

---如上所示,在启动脚本时,awk工具出现动态库链接错。

3、查看正常的awk的动态库链接

[kingbase@node101 bin]$ ldd awk
linux-vdso.so.1 => (0x00007ffea8f86000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fb9abcc7000)
libm.so.6 => /lib64/libm.so.6 (0x00007fb9ab9c5000)
libc.so.6 => /lib64/libc.so.6 (0x00007fb9ab5f7000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb9abecb000)

---如上所示,awk是系统工具,正常的动态库链接文件应该在/lib64目录下

4、查看故障主机awk动态库链接(kingbase用户查看)

---如上所示,动态库libreadline.so.2链接目录指向了数据库软件所带的动态库文件。

5、查看系统kingbase用户LD_LIBRARY_PATH变量配置

---如上图所示,动态库文件优先从数据库软件目录下访问库文件,导致awk调用了错误的动态库。

二、问题解决
1、编辑kingbase用户LD_LIBRARY_PATH变量

export LD_LIBRARY_PATH=/lib64:/opt/Kingbase/ES/V8/Server/lib: $ LD_LIBRARY_PATH

2、应用变量配置
source .bashrc

3、重启sshd服务,重新执行sys_monitor.sh start启动集群,启动正常。

三、总结
对于数据库运行环境,当出现动态库故障时,很多和用户 LD_LIBRARY_PATH变量的配置有关,在分析问题时,可以优先从 LD_LIBRARY_PATH配置来处理和解决问题。