====== Rücksicherung ====== Um die DB nach einem Crash wiederherstellen zu können, müssen die folgenden Schritte durchgeführt werden. **Hinweis! Für eine Vollständigkeit und in jedem Fall richtige Funktionsweise kann keine Haftung übernommen 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= cmd>set ORACLE_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= 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: * [[dba:datendatei_defekt|Szenario 1 -- Eine/oder mehrere Datendatei(en) ist/sind defekt]] * [[dba:controlfile_verlust|Szenario 2 -- Controldateien fehlen alle]] * [[dba:redolog_verlust|Szenario 3 -- Online Redo Logs fehlen ]] * [[dba:spfile_verloren|Szenario 4 – Probleme mit dem SPfile ]] * [[dba:datenbank_geloescht|Szenario 5 – Gesamte DB inkl. Software geht verloren]] * [[dba:archicelog_fehlt|Szenario 6 -- Archivelog fehlt beim Recover]] * [[dba:recover_omf_db_asm_rac|Szenario 7 -- Restore RAC Datenbank (Oracle Managed File OMF) in einer Single ASM Umgebung mit geänderten Diskgroup Name ]] * [[dba:block_recover|Szenario 8 -- Nur einzelne Blöck in der Datenbank sind defekt]]