Wiederherstellungsmodelle für Oracle
Oracle verwaltet an Inhalt und Struktur der Datenbank vorgenommene Änderungen so, dass die Wiederherstellung der Datenbank bis zur letzten übernommenen Transaktion nach einer einzelnen Schwachstelle gewährleistet ist. Bis zur letzten übernommenen Transaktion bedeutet Folgendes: Sobald nach Ausführung einer COMMIT-Anweisung die Kontrolle wieder an den Benutzer übergeben wurde, garantiert Oracle, dass die übernommenen Daten in irgendeiner Form auf die Festplatte geschrieben wurden und wiederherstellbar sind. Einzelne Schwachstelle bedeutet, dass eine einzelne Datei oder ein Prozess fehlschlagen kann, ohne dass dadurch der Inhalt einer übernommenen Transaktion verloren geht. Wenn eine Datendatei verloren geht oder beschädigt wird, können die Daten anhand des Inhalts der Redo-Logs garantiert wiederhergestellt werden. Wenn eine Kontrolldatei beschädigt wird, kann mit den anderen Kontrolldateien gewährleistet werden, dass die Informationen nicht verloren gehen. Ein Prozess kann abgebrochen werden, übernommene Daten gehen jedoch niemals verloren.
Um eine Datenbank nach Auftreten eines Fehlers wiederherzustellen, werden in Oracle die folgenden Schritte ausgeführt:
- Lesen der Datei "init.ora", um die Namen und Speicherorte der Kontrolldateien zu ermitteln
- Lesen der Kontrolldateien, um ihre Konsistenz untereinander zu überprüfen und die physische Dateistruktur der Datenbank zu ermitteln
- Öffnen aller in der Kontrolldatei aufgeführten Datendateien, um zu ermitteln, ob die Datendatei aktuell ist und die letzte übernommene Änderung wiedergibt oder ob sie wiederhergestellt werden muss
- Öffnen aller Redo-Protokolldateien in Folge und Anwenden der darin enthaltenen Informationen nach Bedarf auf jede einzelne Datendatei, sodass für jede Datendatei wieder der Stand erreicht wird, in dem alle übernommenen Transaktionen enthalten sind
Wenn in der Datenbank eine Kontrolldatei verloren gegangen ist, wird zum Wiederherstellen der Datenbank die verloren gegangene Kontrolldatei durch eine Kopie einer aktuellen Kontrolldatei ersetzt.
Wenn in der Datenbank eine oder mehrere Datendateien verloren gegangen sind, wird die Datenbank wie folgt wiederhergestellt: Zunächst werden verloren gegangenen Datendateien durch die entsprechenden Sicherungskopien ersetzt, anschließend werden die wiederhergestellten Kopien mithilfe der Redo-Protokolldateien (online oder archiviert) auf den aktuellen Stand gebracht. Wenn die Sicherungskopien nicht am gleichen Speicherort wie die zu ersetzenden Originaldateien wiederhergestellt werden, müssen Sie den Befehl ALTER DATABASE > RENAME FILE verwenden, um die Oracle-Instanz anzuweisen, wo sich die wiederhergestellten Dateien befinden.
Wenn in der Datenbank die aktuelle Online-Redo-Protokolldatei verloren gegangen ist, wird die Datenbankinstanz beim Versuch, weitere Transaktionen zu übernehmen, angehalten. Es gehen keine Daten verloren, aber die letzte Transaktion wird nicht übernommen und muss möglicherweise neu eingegeben werden, wenn die Datenbank wieder ausgeführt wird. Die aktuellen Online-Redo-Protokolldateien müssen jedoch ersetzt werden, und es sollte umgehend eine Sicherungskopie der Datenbank erstellt werden.
Wenn in der Datenbank archivierte Redo-Protokolldateien verloren gegangen sind, funktioniert die Datenbankinstanz auch weiterhin, da ihr keine Informationen über den Verlust vorliegen. Im Fall eines zweiten Medienausfalls oder Dateiverlusts ist eine Wiederherstellung der Datenbank jedoch unter Umständen nicht mehr möglich. Bei Verlust der archivierten Redo-Protokolldateien sollten Sie eine neue Sicherungskopie erstellen.