暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

主机RemoveIPC参数未关闭导致数据库异常分析

原创 飞天 2024-08-23
797

前言

运维同事在不知情的情况下,在磐维数据库所在的主机上执行了误操作,导致新安装好的单节点数据库状态异常。由于数据库中暂时还没有数据,所以决定卸载数据库重新安装。

重新安装过程

1、先卸载数据库

# omm用户执行
$ cd /database/panweidb/soft/script
$ gs_uninstall --delete-data

2、重新安装数据库

2.1 预安装数据库

# root用户执行
# ./gs_preinstall -U omm -G dbgrp -X /database/panweidb/soft/cluster_config_template.xml --sep-env-file=/home/omm/.bash_profile

报错如下:
[GAUSS-50219] : Failed to obtain # Source /root/.bashrc if user has one. There are illegal characters in local host.
解决办法:
重新指定环境变量配置文件/home/omm/.panweidb_env

# root用户执行
# ./gs_preinstall -U omm -G dbgrp -X /database/panweidb/cluster_config_template.xml --sep-env-file=/home/omm/.panweidb_env

磐维数据库预安装正常。

2.2 安装数据库

# root用户执行
# chown -R omm:dbgrp /database/panweidb
# chmod -R 755 /database/panweidb

# omm用户执行
$ gs_install -X /database/panweidb/soft/cluster_config_template.xml \
--gsinit-parameter="--encoding=UTF8" \
--gsinit-parameter="--lc-collate=C" \
--gsinit-parameter="--lc-ctype=C" \
--gsinit-parameter="--dbcompatibility=B"

磐维数据库安装正常。

3、查看数据库状态

# omm用户执行
$ gs_om -t status --detail

刚开始数据库状态是正常的,但是过几分钟后数据库状态异常。
数据库异常时的日志截图如下:
image.png

4、分析数据库日志

720ee10ffd8d1f6f0847dec532511f6.png
可以看到,在这个报错后,数据库就被终止了:
2024-08-19 18:24:12.547 66c31d4b.3932 [unknown] 140088896911104 dn_6001 0 dn_6001 42809 0 [BACKEND] FATAL: semop(id=130187529) failed: Identifier removed

分析思路:
难道是内核参数配置有问题?检查了内核参数文件 /etc/sysctl.conf,是正常的。
检查了RemoveIPC,异常。运维同事在第一次安装的时候,RemoveIPC就忘记关闭了。

5、关闭RemoveIPC:

1、 修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”
vim  /etc/systemd/logind.conf
RemoveIPC=no
2、修改/usr/lib/systemd/system/systemd-logind.service文件中的“RemoveIPC”值为“no”
vim /usr/lib/systemd/system/systemd-logind.service
RemoveIPC=no       #没有参数,添加到末尾
3、 重启服务
systemctl daemon-reload
systemctl restart systemd-logind.service
4、 结果验证确认
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC

关闭RemoveIPC后,重新拉起数据库,持续观察半小时,数据库状态正常。

原因

在RHEL7.2及之后,systemd-logind 服务引入了一个新特性——当一个user 完全退出os之后,remove掉所有的IPC objects。
该特性由/etc/systemd/logind.conf参数文件中RemoveIPC选项来控制。当使用默认值(即 RemoveIPC=yes)的情况,当用户退出时,操作系统会remove掉该用户的shared memory segments and semaphores。

总结

本次主要是RemoveIPC没有关闭导致的数据库不稳定,启动数据库后几分钟后就crash异常。
再次提醒童鞋们,做运维千万要小心谨慎。另外,只有按照标准文档把前期配置工作的每一项都准备好,数据库安装后才能稳定运行。

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

评论