ORA-15077 / PROC-26 bei Starten von RAC Knoten

Ausgangssituation:

Der im folgenden beschriebene Fehler trat in einer Oracle Real Application Cluster 11g Release 2 Umgebung auf.

 

Problembeschreibung:

Nach einem Neustart eines Cluster-Knotens konnte der CRS Daemon nicht mehr gestartet werden. Bei der Überprüfung der Resourcen kam es zu einem CRS-0184 Fehler.

[root@rac01-1 ~]# /u01/app/11.2.0/grid/bin/crs_stat -t CRS-0184: Cannot communicate with the CRS daemon.

Im Alertlog des Clusterknotens wurden folgende Fehlermeldungen registriert. Der Pfad zum Logfile muss entsprechend der Installation angepasst werden.

[root@rac01-1 rac01-1]# cat /u01/app/11.2.0/grid/log/rac01-1/alertrac01-1.log ... [crsd(3107)]CRS-1013:Auf den OCR-Speicherort in einer ASM-Plattengruppe konnte nicht zugegriffen werden. Details in /u01/app/11.2.0/grid/log/rac01-1/crsd/crsd.log. 2010-11-17 11:53:22.664 [ohasd(2718)]CRS-2765:Ressource 'ora.crsd' wurde auf Server 'rac01-1' nicht erfolgreich ausgeführt. ...

Die Details zu den Fehlern fanden sich im CRSD Log.

2010-11-17 11:44:53.099: [  OCRASM][3046840016]proprasmo: Error in open/create file in dg [CONFIG] [  OCRASM][3046840016]SLOS : SLOS: cat=7, opn=kgfoAl06, dep=15077, loc=kgfokge ORA-15077: ASM-Instanz, die eine obligatorische Plattengruppe bedient, konnte nicht gefunden werden 2010-11-17 11:44:53.101: [  OCRASM][3046840016]proprasmo: kgfoCheckMount returned [7] 2010-11-17 11:44:53.101: [  OCRASM][3046840016]proprasmo: The ASM instance is down 2010-11-17 11:44:53.102: [  OCRRAW][3046840016]proprioo: Failed to open [+CONFIG]. Returned proprasmo() with [26]. Marking location as UNAVAILABLE. 2010-11-17 11:44:53.102: [  OCRRAW][3046840016]proprioo: No OCR/OLR devices are usable 2010-11-17 11:44:53.102: [  OCRASM][3046840016]proprasmcl: asmhandle is NULL 2010-11-17 11:44:53.102: [  OCRRAW][3046840016]proprinit: Could not open raw device 2010-11-17 11:44:53.102: [  OCRASM][3046840016]proprasmcl: asmhandle is NULL 2010-11-17 11:44:53.103: [  OCRAPI][3046840016]a_init:16!: Backend init unsuccessful : [26] 2010-11-17 11:44:53.104: [  CRSOCR][3046840016] OCR context init failure.  Error: PROC-26: Fehler beim Zugriff auf physischen Speicher ASM-Fehler [SLOS: cat=7, opn=kgfoAl06, dep=15077, loc=kgfokge ORA-15077: ASM-Instanz, die eine obligatorische Plattengruppe bedient, konnte nicht gefunden werden] [7] 2010-11-17 11:44:53.104: [    CRSD][3046840016][PANIC] CRSD exiting: Could not init OCR, code: 26

Die Fehler ließen auf ein Problem beim Starten der ASM Instanz hindeuten, da die Überprüfung des physikalischen Speichers erfolgreich war.

Um das Problem genauer zu identifizieren, habe ich die ASM Instanz per Hand gestartet. Dafür musste ich mich mit dem Installationsbenutzer (in meinem Fall als grid Benutzer) anmelden.

grid@rac01-1 ~]$ asmcmd Connected to an idle instance. ASMCMD> ls ASMCMD-08102: no connection to ASM; command requires ASM to run ASMCMD> exit

Die Anmeldung über das ASM Commandline Werkzeug zeigte, dass die ASM Instanz nicht gestartet war.

[grid@rac01-1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 17 11:54:54 2010  Copyright (c) 1982, 2009, Oracle.  All rights reserved.  ERROR: ORA-12547: TNS:lost contact  Enter user-name:

Bevor die Anmeldung an der ASM Instanz abgeschlossen war, wurde bereits ein ORA-12547 Fehler gemeldet.

Ein ORA-12547 Fehler tritt häufig auf wenn die Kernelparameter shmall und shmmax nicht korrekt sind. Bei der Überprüfung der Parameter kam zum Vorschein, dass für die beiden genannten Parameter zu niedrige Werte verwendet wurden.

 

Nachdem die Parameter angepasst wurden, müssen die Kernelparameter neu eingelesen werden, damit die Änderungen greifen.

[root@rac01-1 rac01-1]# /sbin/sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 4294967295 kernel.shmall = 268435456 kernel.shmmni = 4096 kernel.sem = 250 32000 100 200 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 2097152 vm.hugetlb_shm_group = 1001 fs.file-max = 6815744 fs.aio-max-nr = 1048576

Im letzten Schritt müssen die Oracle Dienste neugestartet werden. Dafür werden zunächst die Cluster Registry Services (CRS) gestoppt. Für das Stoppen muss die Force Option -f verwendet werden.

[root@rac01-1 rac01-1]# /u01/app/11.2.0/grid/bin/crsctl stop crs -f CRS-2791: Herunterfahren der von Oracle High Availability Services verwalteten Ressourcen auf "rac01-1" wird gestartet CRS-2679: Versuch, "ora.crsd" auf "rac01-1" zu bereinigen CRS-2681: Bereinigen von "ora.crsd" auf "rac01-1" erfolgreich CRS-2673: Versuch, "ora.gpnpd" auf "rac01-1" zu stoppen CRS-2673: Versuch, "ora.cssdmonitor" auf "rac01-1" zu stoppen CRS-2673: Versuch, "ora.ctssd" auf "rac01-1" zu stoppen CRS-2673: Versuch, "ora.evmd" auf "rac01-1" zu stoppen CRS-2673: Versuch, "ora.mdnsd" auf "rac01-1" zu stoppen CRS-2677: Stoppen von "ora.cssdmonitor" auf "rac01-1" erfolgreich CRS-2677: Stoppen von "ora.evmd" auf "rac01-1" erfolgreich CRS-2677: Stoppen von "ora.mdnsd" auf "rac01-1" erfolgreich CRS-2677: Stoppen von "ora.gpnpd" auf "rac01-1" erfolgreich CRS-2677: Stoppen von "ora.ctssd" auf "rac01-1" erfolgreich CRS-2673: Versuch, "ora.cssd" auf "rac01-1" zu stoppen CRS-2677: Stoppen von "ora.cssd" auf "rac01-1" erfolgreich CRS-2673: Versuch, "ora.diskmon" auf "rac01-1" zu stoppen CRS-2673: Versuch, "ora.gipcd" auf "rac01-1" zu stoppen CRS-2677: Stoppen von "ora.gipcd" auf "rac01-1" erfolgreich CRS-2677: Stoppen von "ora.diskmon" auf "rac01-1" erfolgreich CRS-2793: Herunterfahren der von Oracle High Availability Services verwalteten Ressourcen auf "rac01-1" ist abgeschlossen CRS-4133: Oracle High Availability Services has been stopped.

Anschließend werden die Dienste wieder gestartet.

[root@rac01-1 rac01-1]# /u01/app/11.2.0/grid/bin/crsctl start crs CRS-4123: Oracle High Availability Services has been started.

Die Überprüfung der Resourcen sollte nun ohne Fehler durchgeführt werden können.

[root@rac01-1 rac01-1]# /u01/app/11.2.0/grid/bin/crs_stat -t Name           Type           Target    State     Host ------------------------------------------------------------ ora.CONFIG.dg  ora....up.type ONLINE    ONLINE    rac01-1 ora....ER.lsnr ora....er.type ONLINE    ONLINE    rac01-1 ora....N1.lsnr ora....er.type ONLINE    ONLINE    rac01-1 ora.asm        ora.asm.type   ONLINE    ONLINE    rac01-1 ora.eons       ora.eons.type  ONLINE    ONLINE    rac01-1 ora.gsd        ora.gsd.type   OFFLINE   OFFLINE ora....network ora....rk.type ONLINE    ONLINE    rac01-1 ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE ora.ons        ora.ons.type   ONLINE    ONLINE    rac01-1 ora....SM1.asm application    ONLINE    ONLINE    rac01-1 ora....-1.lsnr application    ONLINE    ONLINE    rac01-1 ora....1-1.gsd application    OFFLINE   OFFLINE ora....1-1.ons application    ONLINE    ONLINE    rac01-1 ora....1-1.vip ora....t1.type ONLINE    ONLINE    rac01-1 ora....1-2.vip ora....t1.type ONLINE    ONLINE    rac01-1 ora.scan1.vip  ora....ip.type ONLINE    ONLINE    rac01-1

Leave a Reply

Your email address will not be published.