ORA-27157 ORA-27300 ORA-27301

二次信任 提交于 2020-10-28 09:13:27

目录:

  • 问题现象
  • 原因分析
  • 解决方案

 


 

问题现象:

  收到同事反馈,数据库无法连接。于是登录服务器发现,数据库莫名挂掉。实例crash,日志中记录截取一段如下:

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ckpt_9364.trc:
ORA-27157: OS post/wait facility removed
ORA-27300: OS system dependent operation:semop failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1

 

原因分析:

  在rhel7.2中,systemd-logind服务引入了一个新特性:

  在一个user完全退出OS后会remove掉所有的IPC对象。 
  该特性由/etc/systemd/logind.conf参数文件中RemoveIPC选项来控制。RemoveIPC的默认值是yes。详细请看man logind.conf(5)。

  因此,当最后一个oracle或者grid用户退出时,操作系统会remove掉这个user的shared memory segments和semaphores。

  数据库用户使用的都是共享内存,一旦共享内存段被remove掉,就会出现这个问题。

 

解决方法:

  以root用户执行。

sed -i 's/RemoveIPC=yes/RemoveIPC=no/g' /etc/systemd/logind.conf

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!