UOS e版本下hac集群归档使用cp命令,导致归档失败
·
环境
系统平台:UOS(鲲鹏)
版本:4.5.8
症状
-
环境信息
数据库:4.5.8+hac4.2.1
操作系统:UOS1060e、UOS1070e
-
问题现象
数据库单机,数据库归档进程正常;hac集群启动数据库,数据库归档报错;归档命令:cp %p /path/archive/%f
1.数据库csv文件报错
致命错误,XX000,归档命令执行失败,退出代码为127","执行失败的归档命令是:/usr/bin/cp pg_wal/000000220000008E000
2.数据库log文件报错
/usr/bin/cp: /opt/highgo/hgdb-see-4.5.8/lib/libselinux.so.1: no version information available (reguired by /usr/bin/cp)
/usr/bin/cp:relocation error: /usr/bin/cp: symbol write_audit_log version LIBSELINUX_1.0 not defined in file libselinux.so.1 with link time reference
问题原因
数据库使用服务器cp命令归档,使用hac集群服务启动时,cp命令依赖的libselinux.so.1与此操作系统存在不兼容的地方。
- 排查思路
1、调整归档命令,ldd /usr/bin/cp命令用于查看cp 命令的动态链接库依赖关系。
alter system set archive_command = 'ldd /usr/bin/cp >> /tmp/archive_env.log';
select pg_reload_conf();
2、触发归档命令
select pg_switch_wal();
select pg_switch_wal();
3、调整回原生产环境使用的归档命令
alter system set archive_command = '/usr/bin/cp %p /data/highgo/hg_bak/archive/%f';
select pg_reload_conf();
4、查看cp命令依赖输出
cat /tmp/archive_env.log
......
`/usr/bin/cp: /usr/local/hghac/hac/hghac/_internal/libselinux.so.1: no version information available (required by /usr/bin/cp)
......
警告信息表明 cp命令在运行时发现了一个版本不匹配的共享库。
解决方案
- 方案一:
当前版本的hac,删除服务文件调用hac打包的libselinux.so.1的配置,重命名libselinux.so.1文件,使其调用操作系统自带的;
cd /usr/local/hghac/hac/hghac/_internal
mv libselinux.so.1 libselinux.so.1.bak
- 方案二:
升级hac版本,4.2.3.3版本已经解决此问题;
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)