环境
系统平台:N/A
版本:6.0
症状
应用程序及数据库日志均报错:error:could not open shared memory segment “/PostgreSQL.xxxxx”: No such file or directory
问题原因
数据库参数dynamic_shared_memory_type设置为posix时,并行查询进程会在/dev/shm文件夹下生成PostgreSQL.开头的共享内存段文件,并行查询结束时删除。
在RHEL7.2及以后,systemd-logind服务引入了一个新特性–当一个user退出操作系统后,remove掉所有的IPC objects。
企业版数据库服务使用的用户与备份用户同名,均为highgo,定时任务自动备份结束后,user退出并清除/dev/shm下的所有IPC objects,此时数据库存在并发进程的话就会报相应的错误。
解决方案
修改操作系统参数RemoveIPC为no
vim /etc/systemd/logind.conf
将RemoveIPC修改为no
重启systemd-logind服务生效
systemctl restart systemd-logind.service