更新日期:2024年09月11日
CentOS/RHEL 7.2 或Kylin-Server-20200711 及之后版本的操作系统中,systemd-logind
服务引入一个新特性——RemoveIPC,表现为:用户登录后创建的文件,在logout 后会被自
动删除。该特性由/etc/systemd/logind.conf 参数文件中RemoveIPC 选项来控制。详细信息请
执行man logind.conf(5)命令查看。
当使用默认值(即RemoveIPC=yes)的情况,当用户退出时,操作系统会crash 掉使用
了Shared Memory Segment (SHM) or Semaphores (SEM)的应用程序,导致GBase 8c 数据库
进程将会被中断。
因此在CentOS 7.2+、RHEL 7.2+或Kylin-Server-20200711+操作系统环境中,需检查
RemoveIPC 参数,避免发生此类问题。操作步骤如下:
步骤1 查看RemoveIPC 参数值是否为yes
[root@gbase8c ~]# loginctl show-session | grep RemoveIPC
[root@gbase8c ~]# systemctl show systemd-logind | grep RemoveIPC
如果为yes,则需要修改;如果为no,则无需继续执行后续步骤。
步骤2 修改RemoveIPC 参数值。执行以下操作:
修改/etc/systemd/logind.conf 配置文件
[root@gbase8c ~]# vim /etc/systemd/logind.conf
将RemoveIPC 参数值设置为no,键入“:wq”保存并退出。
修改/usr/lib/systemd/system/systemd-logind.service 配置文件,将RemoveIPC 参数值设置
为no。
[root@gbase8c ~]# vim /usr/lib/systemd/system/systemd-logind.service
将RemoveIPC 参数值设置为no,键入“:wq”保存并退出。
步骤3 重新加载配置文件,执行以下命令:
GBase 8c V5 安装部署手册(简易版)
南大通用数据技术股份有限公司
24
[root@gbase8c ~]# systemctl daemon-reload
[root@gbase8c ~]# systemctl restart systemd-logind
再次检查是否生效即可。
以下示例显示了添加到 SPL 例程 items_pct 中的 TRACE 语句。SET DEBUG FILE TO 语
句将跟踪输出定向至路径名所指定的文件。
TRACE ON 语句开始跟踪过程中的语句和变量。
CREATE PROCEDURE items_pct(mac CHAR(3))
DEFINE tp MONEY;
DEFINE mc_tot MONEY;
DEFINE pct DECIMAL;
SET DEBUG FILE TO 'pathname';
TRACE 'begin trace';
TRACE ON;
LET tp = (SELECT SUM(total_price) FROM items);
LET mc_tot = (SELECT SUM(total_price) FROM items
WHERE manu_code = mac);
LET pct = mc_tot / tp;
IF pct > .10 THEN
RAISE EXCEPTION -745;
END IF
TRACE OFF;
END PROCEDURE;
CREATE TRIGGER items_ins
INSERT ON items
REFERENCING NEW AS post_ins
FOR EACH ROW(EXECUTE PROCEDURE items_pct (post_ins.manu_code));
GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 350 -