12C RAC中的一个数据库实例自动crash并报ORA-27157、ORA-27300等错误

rhel7.2上安装12C RAC数据库后,其中一个数据库实例经常会自动crash。查看alert日志发现以下错误信息:

Errors in file /d12/app/oracle/diag/rdbms/rac12c/rac12c2/trace/rac12c2_j000_21047.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
Fri Sep 09 16:50:53 2016
Errors in file /d12/app/oracle/diag/rdbms/rac12c/rac12c2/trace/rac12c2_rmv0_20798.trc:
ORA-27157: OS post/wait facility removed
Fri Sep 09 16:50:53 2016
Errors in file /d12/app/oracle/diag/rdbms/rac12c/rac12c2/trace/rac12c2_q005_21328.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选项来控制。详细请看man logind.conf(5)。

在rhel7.2中,RemoveIPC的默认值是yes

因此,当最后一个oracle或者grid用户退出时,操作系统会remove掉这个user的shared memory segments和semaphores
而Oracle ASM和database的SGA需要使用 shared memory segments,因此remove shared memory segments将会crash掉Oracle ASM和database instances。

请参考Redhat bug 1264533 - https://bugzilla.redhat.com/show_bug.cgi?id=1264533

这个问题会影响使用shared memory segments和semaphores的所有应用,因此,Oracle ASM 实例和Oracle Database 实例均受到影响。
oel7.2为了避免这个问题,在/etc/systemd/logind.conf配置文件中明确设置RemoveIPC为no。

该问题会导致的现象:

1) Installing 11.2 and 12c GI/CRS fails, because ASM crashes towards the end of the installation.
2) Upgrading to 11.2 and 12c GI/CRS fails.
3) After Redhat Linux is upgraded to 7.2, 11.2 and 12c ASM and database instances crash.

systemd-logind可能会在任何时候remove IPC对象,发生错误的时候对应的日志现象也不同。比如:

Most common error that occurs is that the following is found in the asm or database alert.log:
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

  

The second observed error occurs during installation and upgrade when asmca fails with the following error:
KFOD-00313: No ASM instances available. CSS group services were successfully initilized by kgxgncin
KFOD-00105: Could not open pfile ‘[email protected]‘

  

The third observed error occurred during installation and upgrade:
Creation of ASM password file failed. Following error occurred: Error in Process: /d12/app/12.1.0/grid/bin/orapwd

 Enter password for SYS:

OPW-00009: Could not establish connection to Automatic Storage Management instance

2015/11/20 21:38:45 CLSRSC-184: Configuration of ASM failed
2015/11/20 21:38:46 CLSRSC-258: Failed to configure and start ASM

  

The fourth observed error is the following message is found in the /var/log/messages file around the time that asm or database instance crashed:
Nov 20 21:38:43 testc201 kernel: traps: oracle[24861] trap divide error
ip:3896db8 sp:7ffef1de3c40 error:0 in oracle[400000+ef57000]

  

修改方法:

1).设置/etc/systemd/logind.conf中RemoveIPC=no
2).重启服务器或者重启systemd-logind
重启systemd-logind:

# systemctl daemon-reload
# systemctl restart systemd-logind

  

MOS Doc:

ALERT: Setting RemoveIPC=yes on Redhat 7.2 Crashes ASM and Database Instances as Well as Any Application That Uses a Shared Memory Segment (SHM) or Semaphores (SEM) (Doc ID 2081410.1)

时间: 2024-10-22 02:35:26

12C RAC中的一个数据库实例自动crash并报ORA-27157、ORA-27300等错误的相关文章

将oracle冷备份恢复到另外一个数据库实例中

因更换服务器需要将Oracle数据库转移到另外台Oracle中.说明: 1.测试环境为:windows server2003 和 oracle 10g. 2.2台服务器安装的程序目录一样,数据目录不一样.特别借签了Afshen兄弟发的实践将oracle冷备份恢复到另外一个数据库实例中操作文章.但是对于新手来说没有详细说明,且我的操作有点点差异.另外我是新手,只知道工作完成,但是不知道是否此操作是否对于数据库使用存在何影响,还需要后期开发使用在知道,希望能给大家提供对比作为操作中的参考.(因时间仓

【翻译自mos文章】12c rac中,当脑裂发生时,哪个节点会幸存下来?

来源于: 12c: Which Node Will Survive when Split Brain Takes Place [1951726.1] 12c rac中,当脑裂发生时,哪个节点会幸存下来? 适用于: Oracle Database - Enterprise Edition - Version 12.1.0.2 and later Information in this document applies to any platform. 目的: 理解 从12.1.0.2开始,当脑裂发

Confluence 6 从生产环境中恢复一个测试实例

请参考 Restoring a Test Instance from Production 页面中的内容获得更多完整的说明. 很多 Confluence 的管理员将会使用生产实例运行完整数据和服务的 Confluence 服务器,同时还会设置一个测试实例来测试升级等.在这种情况下,你的 Confluence 可以回运行 2 个不同的版本,而且也是非常常见的.这个文档将会知道你如何拷贝生产环境中的数据到一个测试实例中,同时测试环境的版本和生产环境中的版本还有可能是不同的. 在开始这个操作指南之前,

Oracle 12c RAC 中废弃的维护命令 crs_*

在Oracle 10g,11g的RAC中,我们常用crs_stat来监控RAC的运行状态. 但由于crs_stat 显示是不完整的,所以我们会对crs_stat 进行二次封装,让结果看起来更清爽一点. 如下图: 到了12c 的集群环境,crs_* 系列的命令还是存在的: [[email protected] bin]$ pwd /u01/app/grid/12.0.1/bin [[email protected] bin]$ ll crs_* -rwxr-x---. 1 grid oinstal

在OpenStack环境中创建一个VM实例

在OpenStack平台上创建一个VM实例,在OpenStack组件间一般会经历以下过程: 以某个有创建VM权限的账户登录到OpenStack环境(Web环境或者命令行环境):账户发起创建VM的请求,Keystone认证通过后发给该账户token:账户凭token调用nova-api创建VM:nova-api将账户户要创建的VM资源信息发给nova-scheduler,由nova-scheduler调度VM承载机器:承载机器上的nova-compute从nova-conductor处获得flav

oracle数据库怎么创建数据库实例

最近进入了一个国家单位,用的是oracle数据库,因为本人之前没有安装过oracle数据库,现在分享一下. 首先我安装的oracle 11g版本的数据库,具体怎么安装的数据库,网上有很多教程,而且这个安装过程比较复杂,所以我就不赘述了. 我本篇记录的是如何从安装好的数据库中创建一个数据库实例,即新建一个数据库. 第一步:在开始菜单栏找到安装好的数据库文件,点击. 第二步: 第三步: 第四步: 第五步: 第六步: 第七步: 第八步: 第九步: 第十步: 第十一步: 第十二步: 第十三步:点击完成

Oracle 12c RAC MGMTDB 说明

 注:本文谢绝转载. 1  MGMTDB 说明 在Oracle 12.1.0.1的Grid Infrastructure 的安装中,可以选择是否安装Grid Infrastructure Management Repository (GIMR) 数据库:MGMTDB. 如下图: 在Grid Infrastructure 12.1.0.2 中,已经没有改选项,MIMR 数据库已经变成了强制选项. 在Oracle 12c 中Management Database 用来存储Cluster Health

Oracle442个应用场景----------数据库实例

应用场景1-7为Oracle的安装过程,此处不过多的讲解,网上的材料很多,也许会在后期中补上. 应用场景8 查看所有数据文件的位置: SELECT NAME FROM V$DATAFILE; List命令: LIST SAVE命令: SAVE D:\ORACLESQL.SQL; 应用场景9-16为数据库的卸载和配置过程 -----------------数据库实例------------------ 实例(instance):一组Oracle 后台进程/线程以及一个共享内存区,这些内存由同一个计

【翻译自mos文章】在rac中,使用asmcmd命令从 文件系统 move system datafile 到asm磁盘组的方法

在rac中,使用asmcmd命令从 文件系统  move system datafile 到asm磁盘组的方法. 参考原文: How to move a SYSTEM datafile from filesystem to the ASM diskgroup using ASMCMD on RAC. (Doc ID 1607292.1) 适用于: Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.3 [Releas