Inhaltsverzeichnis
Rücksicherung
Um die DB nach einem Crash wiederherstellen zu können, müssen die folgenden Schritte durchgeführt werden.
Gutes Grundverständnis der Oracle-Architektur wird vorausgesetzt!
Bitte binden Sie im Zweifel immer den Oracle Support mit ein!
1. Schritt - Analyse
Die Anwender melden einen Fehler mit der Datenbank.
- Kaffee trinken, Doku suchen, entspannen
- Ist auf den Platten überhaupt noch Platz?
- Falls nicht, Platz schaffen
- Prüfen:
- In der alert-Log-Datei den letzten Eintrag suchen
- Evtl. ist ja auch nur der Archiver stehen geblieben
A) Läuft die DB noch?
Über die Konsole mit SQL*Plus auf die DB verbinden
cmd>SET ORACLE_HOME=<Meine DB Software> cmd>SET ORACLE_SID=<Meine Anwender schimpfen SID> cmd>sqlplus "/ as sysdba"
Läuft die Instance überhaupt noch?
SQL> SELECT INSTANCE_NAME,STARTUP_TIME,STATUS,ACTIVE_STATE FROM v$instance; INSTANCE_NAME STARTUP_ STATUS ACTIVE_ST ---------------- -------- ------------ --------- ORACLE_SID 26.08.06 OPEN NORMAL
Ist die Datenbank geöffnet?
SQL> SELECT dbid,name,OPEN_MODE FROM v$database; DBID NAME OPEN_MODE ---------- ---------------------------------------- ---------- 944794439 ORACLE_SID READ WRITE
Sind alle Datendateien online?
SQL> SELECT name,status FROM v$datafile; NAME STATUS ---------------------------------------- ------- D:\ORACLE\ORADATA\ORACLE_SID\SYSTEM01.DBF SYSTEM D:\ORACLE\ORADATA\ORACLE_SID\UNDOTBS01.DBF ONLINE D:\ORACLE\ORADATA\ORACLE_SID\INDX01.DBF ONLINE D:\ORACLE\ORADATA\ORACLE_SID\TOOLS01.DBF ONLINE D:\ORACLE\ORADATA\ORACLE_SID\USERS01.DBF ONLINE
Wenn hier alles in Ordnung ist, hängt evtl. nur der Archiver?
Symptome:
Ein Select kann durchgeführt werden, bei einem Update bleibt die Session hängen.
Auf Plattenplatz achten!
Wenn wieder genug Platz da ist, läuft der Archiver normalerweise weiter, ansonsten einen neuen Prozess dazu starten.
SQL> SELECT paddr, name,error FROM v$bgprocess WHERE name LIKE 'ARC%' ORDER BY name; PADDR NAME ERROR -------- ---------------------------------------- ---------- 1AA4048C ARC0 ########## 1AA40874 ARC1 ########## 00 ARC2 ########## ....
Ist in der Spalte PADDR ein Wert eingetragen, läuft ab dieser Speicheradresse der Archiver (in diesem Falle zwei Stück) Falls keiner mehr am Leben ist, kann so ein neuer Prozess gestartet werden:
SQL> ALTER system SET log_archive_max_processes=3; System wurde geändert.
Kontrolle:
SQL> SELECT paddr, name,error FROM v$bgprocess WHERE name LIKE 'ARC%' ORDER BY name; PADDR NAME ERROR -------- ---------------------------------------- ---------- 1AA4048C ARC0 ########## 1AA40874 ARC1 ########## 1AA41044 ARC2 ########## .....
Datenbank ist abgestürzt
Der Service der DB ist noch am Leben:
Sie versuchen sich anzumelden
cmd> SET ORACLE_SID=<meine Defekte DB> H:\oracle\flash_recovery_area\ORACLE_SID>sqlplus /nolog SQL*Plus: RELEASE 9.2.0.7.0 - Production ON Sa Aug 26 16:07:54 2006 Copyright (c) 1982, 2002, Oracle Corporation. ALL rights reserved. SQL> CONNECT / AS sysdba Bei einer nicht hochgefahrenen Instanz angemeldet.
Falls die Meldung so aussieht, ist der Service für die Instance noch am Leben.
Damit wir einen konsistenten Status erreichen, falls noch Prozesse am laufen sind, die Datenbank mit „shutdown abort“ stoppen.
SQL> shutdown abort; ORACLE-Instanz heruntergefahren.
Service der DB ist ebenfalls abgestürzt
H:\oracle\flash_recovery_area\ORACLE_SID>sqlplus /nolog SQL*Plus: RELEASE 9.2.0.7.0 - Production ON Sa Aug 26 16:12:37 2006 Copyright (c) 1982, 2002, Oracle Corporation. ALL rights reserved. SQL> CONNECT / AS sysdba ERROR: ORA-12560: TNS: Fehler bei Protokolladapter
Nur den Service der DB neu starten!
!NICHT ÜBER die Windows-Dienste-Verwaltung, sonst startet auch die Instance!
Zuvor den Startmode auf Manual stellen, sonst startet immer die Instance nach!
cmd>oradim -edit -sid ORACLE_SID -startmode m cmd>oradim -startup -sid ORACLE_SID -starttype srvc
2. Schritt - Retten, was zu retten ist
!MERKSPRUCH für den CHEF: Das kriegen wir hin, aber ein Bein kann Ihnen auch niemand in einer halben Stunde annähen!
Voraussetzung:
- DB Prozesse sind alle beendet (shutdown abort!)
- Kopieren der defekten Datenbank als Sicherungskopie, falls etwas daneben geht!
- solange Kaffee trinken gehen.
Die Szenario für die Rücksicherung
Verschiedene Rücksicherungszenarien: