Skip to Main Content

Breadcrumb

Crash unter RHEL7.2

Oracle ASM und/oder Datenbank Instanz Ausfall unter RHEL 7.2

Hintergrund

Mit RHEL/OEL 7 wurde das "Systemd" Framework als Ersatz der SysV Init Skripte eingeführt. "Systemd" ist ein System- bzw. Service Manager für Linux Operating Systeme (OS). Er verfügt über zahlreiche neue Funktionalitäten wie z.B. parallele Ausführung von System Services beim Starten des Systems, Aktivierung von Hintergrundprozessen aufgrund von Ereignissen, Unterstützung von sog. "System State Snapshots" sowie eine auf Abhängigkeiten basierte Kontrolle der System Services.

Eines der von "Systemd" überwachten Services ist "logind", welches diverse Eigenschaften der OS User Sessions steuert, wie z.B. das Verhalten von Hintergrundprozessen einer Session wenn die Session beendet wird.

Die Konfiguration des "logind" Service wird über die Konfigurationsdatei /etc/systemd/logind.conf gesteuert. Zur Administration wird u.a. das Kommando "loginctl" verwendet.

Problemursache

Mit RHEL 7.2 wurde ein neues Attribut für das "logind" Service eingeführt, "RemoveIPC". Ist der Wert dieses Attributes auf "yes" gesetzt, werden nach dem Beenden der letzten (interaktiven) OS User Session eines Users sämtliche eventuell noch vorhandenen IPC Ressourcen ("Shared Memory Segmente", "Semaphoren", "Message Queues") gelöscht und damit vom System entfernt.

Bei RHEL 7.2 ist dieser Wert standardmäßig auf "yes" gesetzt (für OEL s.u.), was dazu führt, dass nach einem Beenden der letzten (interaktiven) OS User Session eines Users unter dem eine Oracle ASM u/o Datenbank Instanz läuft, die "Shared Memory Segmente" und "Semaphoren" dieser Instanz gelöscht werden.

Dadurch verlieren die Hintergrundprozesse der Instanz(en) - welche unabhängig von den interaktiven Sitzungen laufen - ihre Konsistenz bzw. eine ihrer wichtigsten und vitalen Informations- und Kommunikationsquellen, was in letzter Konsequenz zu einem Totalausfall der Instanz(en) führt.

Es gibt dazu folgenden Bug bei RedHat: 1264533.

Symptome

Installation(en) und Upgrade(s) schlagen fehl

...
KFOD-00313: No ASM instances available. CSS group services were successfully initilized by kgxgncin
KFOD-00105: Could not open pfile 'init@.ora'
...
Creation of ASM password file failed. Following error occurred: Error in Process: /u01/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
...

bereits laufende Instanz(en) fallen plötzlich aus

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
...

/var/log/messages
...
Nov 20 21:38:43 kernel: traps: oracle[24861] trap divide error
ip:3896db8 sp:7ffef1de3c40 error:0 in oracle[400000+ef57000]
...

Problembehebung

RHEL 7.2

  • In der Datei /etc/systemd/logind.conf RemoveIPC=yes durch RemoveIPC=no ersetzen
  • "Systemd" neu starten (alternativ dazu kann auch der Server neu gestartet werden)
    # systemctl daemon-reload
    # systemctl restart systemd-logind

OEL 7.2

Mit OEL wird RemoveIPC explizit auf "no" gesetzt, allerdings besteht die Möglichkeit, dass bei manuellen Veränderungen an der Datei /etc/systemd/logind.conf (z.B. vor einem Upgrade auf 7.2), das Problem nach einem Upgrade dennoch auftritt. OEL erstellt auf jeden Fall eine "korrekte" Version der Datei unter /etc/systemd/logind.conf.rpmnew. Im Problemfall die Datei /etc/systemd/logind.conf prüfen und gegebenenfalls wie unter RHEL 7.2 verfahren.