Table of Contents
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