Oracle Backup und Recovery Anleitung |
|||||||||||||||||||||||||||||||||||
Die folgende Zusammenfassung dokumentiert die wichtigsten Sachverhalte eines Oracle Backup Konzepts und demonstriert alle möglichen Recovery Szenarien. Inhalt Oracle bietet verschiedene Möglichkeiten zur Datensicherung an, eine Übersicht zeigt die folgende Zusammenstellung. Wie bereits gesehen sichern die Redologfiles die Konsistenz der Datenbank. Diese Redologfiles werden zyklisch immer wieder neu beschrieben. Der einzige Unterschied zwischen Online Backup (ARCHIVELOG) und Offline Backup (NOARCHIVELOG) besteht also darin, bei einem Logswitch das Redologfile zu sichern. Eine Umstellung auf eine der Betriebsarten kann jederzeit erfolgen. Umstellung auf ARCHIVELOG Mode Bei der Umstellung auf ARCHIVELOG Mode sind zwei Sachen zu tun:
Im ARCHIVELOG Mode erfolgt der Backup der Datenbank während des laufenden Betriebes, die Datenbank wird nicht mehr gestoppt. Jeder Tablespace wird einzeln gesichert mit den zugehörigen Datenbankfiles. Während des Online Backups werden die «Checkpoint Timestamps» nicht mehr in die Header der Datenbankfiles geschrieben. Alle Datenbank-Objekte welche gesichert werden weisen also die Zeit (Timestamp) des letzten Checkpoints auf. Damit kann Oracle bei einem Recovery automatisch feststellen, welche Offline Redolog Files zurückappliziert werden müssen Nebst den Datenbankfiles müssen auch die archivierten Offline Redologfiles und ein Controlfile gesichert werden. Die Online Redologfiles sind nicht zu sichern, da diese nicht in einem konsistenten Zustand sind. Sie dürfen grundsätzlich nicht verloren gehen, deshalb sind diese äusserst wichtigen Files allenfalls auf eine andere Disk zu duplizieren (Duplexed Redolog Files). Verliert man die Online Redologfiles, so verliert man immer Transaktionen, ein Cancel based Recovery muss angewendet werden. Ein Online Backup besteht also aus:
Jedes Redologfile das archiviert wird, bekommt eine Log-Sequence Nummer, die fortlaufend numeriert ist. Diese Nummer ist für ein Recovery von großer Bedeutung, sie muss deshalb zusammen mit dem Online Backup protokolliert werden. Wenn der Online Backup mit BEGIN BACKUP gestartet wird muss die Nummer «Oldest online log sequence» protokolliert werden. Sie definiert den Beginn der archivierten Redologfiles. Alle älteren archivierten Redologfiles können nach dem Backup auf der Harddisk gelöscht werden. Die Online Redologfiles dürfen im Online Backup Mode nicht mitgesichert werden, da sie keinen definierten Zustand aufweisen. Ein konsistenter Online Backup weist zudem immer ein mit ALTER DATABASE BACKUP CONTOLFILE gesichertes Controlfile auf. Es existieren verschiedene Recoverymethoden, abhängig davon welche Datenbankfiles verloren gehen. Wichtigste V$-Views für Backup und Recovery
Der Online Backup wird bekanntlich mit BEGIN BACKUP gestartet. Nach dem Backup muss die Datenbank zwigend wieder in den END BACKUP Zustand versetzt werden. Was passiert jedoch wenn während dem Online Backup ein Crash erfolgt oder die DB mit shutdown abort heruntergefahren wird. Beim nächsten Startup meldet Oracle, dass die betroffenden Files noch im BEGIN BACKUP Mode sind. Mit dem Kommando alter database datafile 'dbfile(s)' end backup; wird manuell auf END BACKUP geschaltet und der Backup muss wiederholt werden. Beim Startup meldet Oracle:
ORA-01113: Fur Datei '5' ist Datentrager-Recovery notwendig Kontrolle welche DB-Files im BEGIN Backup Mode sind:
Die beiden Files des TAB Tablespace welche den Zustand "ACTIVE" haben auf END BACKUP schalten.
Datenbank öffnen:
Verlust eines normalen Tablespaces Die Datenbank wird im ARCHIVELOG Mode betrieben, es ist ein RECOVER TABLESPACE durchzuführen. Es müssen nur die DB-Files, welche zum verlorenen Tablespace gehören zurückgeladen werden.
Verlust des SYSTEM oder ROLLBACK Segment Tablespaces Die Datenbank muss in diesem Fall mit SHUTDOWN ABORT gestoppt werden, es müssen sämtliche DB-Files zurückgeladen werden, es reicht nicht nur die DB-Files des SYSTEM bzw ROLLBACK Tablespaces zurückzuladen. Beachte, dass das gesicherte Controlfile NICHT zurückgeladen werden darf.
Verlust
der Controlfiles, ev auch des SYSTEM Die Datenbank muss in diesem Fall mit SHUTDOWN ABORT gestoppt werden, es müssen sämtliche DB-Files zurückgeladen werden, es reicht nicht nur die DB-Files des SYSTEM bzw ROLLBACK Tablespaces zurückzuladen. Beachte, dass auch das gesicherte Controlfile NICHT zurückgeladen werden muss. Nun erfolgt das Cancel Based Recovery, man muss die Option USING BACKUP CONTROLFILE verwenden, damit wird Oracle mitgeteilt, dass Inkonsistenzen bestehen zwischen dem Controlfile und den bestehenden Redologfiles. Nach dem Zurückapplizieren der Offline Redolog Files wird ein "Dummy" Recovery gemacht und die Datenbank mit RESETLOGS geöffnet.
Verlust der Online Redolog Files Die Datenbank muss in diesem Fall mit SHUTDOWN ABORT gestoppt werden, es müssen sämtliche DB-Files zurückgeladen werden, es reicht nicht nur die DB-Files des SYSTEM bzw ROLLBACK Tablespaces zurückzuladen. Beachte, dass das gesicherte Controlfile NICHT zurückgeladen werden darf. Nun erfolgt das Cancel Based Recovery bis zum letzten verfügbaren Offline Redolog File.
Datenbank mit fehlendem (normalen) Tablespace starten Die Datenbank kann ohne diesen fehlenden Tablespace gestartet werden.
Archivelog Destination wechseln im laufenden Betrieb Wird der vorhandene Diskplatz für die Offline Redologfiles auf der Disk knapp, und die Zeit reicht nicht mehr aus um die Offline Redologfiles wegzukopieren, so kann die Archivelog Destination während dem Betrieb gewechselt werden. Mit STOP / START kann das automatische Archivieren durch den ARCH Prozess angehalten werden und wieder gestartet werden
Man beachte, dass der String 'ARK' bei der Angabe der neuen Destination kein Directory ist, sondern der Filename-Prefix. Alle momentan nicht archivierten Online Redologfiles manuell archivieren
Online Redolog Swich erzwingen
Status der Redologfiles abfragen (Logsequence)
Manueller Checkpoint durchführen Damit werden alle DB Buffer auf die Disk geschrieben.
Nicht direkt mit dem Recovery zu tun hat der Flush des Shared Pools, zur Vervollständigung der wichtigsten ALTER SYSTEM Kommandos trotzdem an dieser Stelle dokumentiert. Damit werden alle cached Informationen aus dem Shared Pool (Data Dictionary Informationen, Shared PL/SQL und SQL, Stored Proceduren, Functions und Packages) entfernt.
Einfaches Shellscript zum Testen des Online Backups #!/bin/ksh |