ORA-27157 ORA-27300 ORA-27301

目录:

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

 


 

问题现象:

  收到同事反馈,数据库无法连接。于是登录服务器发现,数据库莫名挂掉。实例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

 

 

posted @ 2018-05-29 10:46  halberd.lee  阅读(680)  评论(0编辑  收藏  举报