News
DBA-Tipp: Überblick zu Oracle Flashback

Die Information ist ein schnelllebiges Gut. Jeden Tag werden wir mit hunderten Informationen zugemüllt. Deshalb sind wir bestrebt uns auf das Wesentliche zu konzentrieren und nur substantiell nachhaltige Informationen bereitzustellen.

Icon Unternehmen

Oracle bietet in seinen Datenbankprodukten das Feature Flashback an. Mittels Flashback ist es möglich,  einzelne Daten in der Datenbank oder die komplette Datenbank zu einem früheren Zeitpunkt wiederherzustellen. Dabei werden die Daten durch logische Operationen wiederhergestellt, wie beispielsweise durch Zurückrollen von Transaktionen.

Voraussetzungen

Voraussetzung für die Nutzung der Flashback-Technologie ist ein großer Undo-Tablespace, um hinreichend viele Daten für Flashbackoperationen zur Verfügung zu stellen. Da die benötigte Größe des Undo-Tablespaces sehr stark von den Änderungen in der Datenbank abhängt, bietet sich hier das Auto Extend für den Tablespace an. Die Retention Guarantee stellt dabei sicher, dass die Undo-Daten ausreichend lange im Undo-Tablespace vorgehalten werden.

Verschiedene Flashback-Varianten

1. Flashback Query

Mit Flashback Query werden alle Daten zu einem spezifischen Zeitpunkt abgefragt. Es werden hier keine Datenänderungen durchgeführt. Flashback Query ist auf der geöffneten Datenbank (online) durchführbar und bereits in der Standard Edition One enthalten.

 

2. Flashback Transaction Query

Für die Diagnose von durch User oder Anwendungen verursachten logischen Fehlern eignet sich die Flashback Transaction Query. Innerhalb eines bestimmten Zeitraums durchgeführte Transaktionen und dazugehörige Metadaten können mittels Flashback Transaction Query abgefragt und ausgegeben werden.

 

3. Flashback Version Query

Mit der Flashback Version Query können verschiedene Versionen einer Zeile innerhalb eines vorgegebenen Zeitraums ausgegeben werden. Dabei werden u.a. die Start- und End-SCN, die Start- und Endzeit für die  Gültigkeit dieser Version, sowie die jeweilig durchgeführten Operationen (Insert, Update, Delete) ausgegeben, die zu der Version dieser Zeile führten.

 

4. Flashback Transaction

Mit Flashback Transaction ist es möglich, einzelne Transaktionen zurückzurollen, so dass Daten, die durch Statements in dieser Transaktion geändert wurden, anschließend wieder im ursprünglichen Zustand vorliegen. Diese Variante führt DML-Statements aus bzw. rollt diese zurück.

 

5. Flashback Table – gelöschte Tabelle wiederherstellen

Um eine gelöschte Tabelle wiederherzustellen, muss sich diese noch im 'Recycle Bin' befinden. Der Undo-Tablespace wird hierfür nicht benötigt und die Operation kann online durchgeführt werden. Wurde die gelöschte Tabelle aus dem 'Recycle Bin' gelöscht, lässt sie sich nur noch durch ein Flashback Database oder mittels Point-in-Time-Recovery wiederherstellen. Beides würde jedoch die komplette Datenbank verändern und auf einen früheren Zeitpunkt zurücksetzen.

 

6. Flashback Table – Tabelle zum früheren Zeitpunkt wiederherstellen

Um Daten einer Tabelle mittels Flashback zu einem früheren Zeitpunkt wiederherstellen zu können, müssen die entsprechenden Daten noch im Undo-Tablespace vorhanden sein. Zudem dürfen zwischen dem gewünschten Wiederherstellungszeitpunkt und dem aktuellen Zeitpunkt keine DDL Statements ausgeführt worden sein, die die Struktur der Tabelle geändert haben. Ein Flashback Table wird abgebrochen, wenn während der Flashback Operation Constraints der Tabelle verletzt werden. Die Tabelle wird in diesem Fall nicht geändert. Die Operation ist online durchführbar, läßt sich jedoch nicht auf System-Tabellen anwenden.

 

7. Flashback Database

Mit Flashback Database kann die Datenbank zeitlich in einen früheren Zustand versetzt werden, vergleichbar mit dem Zurückspulen eines Tonbands. Ein Restore aus dem Backup und ein Point-in-Time-Recovery führt zwar zum selben Ergebnis, braucht aber in den meisten Fällen mehr Zeit.
Für ein Flashback Database werden die sogenannten Flashback Logs benötigt, die in der Fast Recovery Area abgelegt werden. Zusätzlich kann ein Flashback Retention Target festgelegt werden, dass das obere Limit in Minuten festlegt, wie weit das Flashback Database maximal zurückgehen kann. Voraussetzung hierfür ist hinreichend viel Platz in der Fast Recovery Area, um die Menge an Flashback Logs vorhalten zu können.
Wird ein Datenfile nach dem Aktivieren des Flashback Database gelöscht, kann es mittels Flashback Database nicht wiederhergestellt werden. Für Flashback Database muss die Datenbank im Exclusive Mode sein.

 

8. Flashback Data Archive (Total Recall)

Daten über einen langen Zeitraum zu archivieren und dabei jede Änderung mitzuverfolgen, fällt in den Bereich des Flashback Data Archive, auch Total Recall genannt. Dabei werden Änderungen an entsprechend berücksichtigten Tabellen 'getrackt' und im Flashback Archive abgelegt. Mit den Flashback Queries können dann die Daten zu jedem beliebigen Zeitpunkt in der Vergangenheit -  soweit er in die Retention Policy des Flashback Archive fällt - abgefragt werden. Daten die außerhalb der Retention Policy liegen, werden automatisch gelöscht.

Fazit

Flashback bietet viele Möglichkeiten, logisch verlorene Daten wiederherzustellen oder alte Daten anzusehen und zu vergleichen. Mit Ausnahme von Flashback Query stehen jedoch alle Flashback Varianten erst in der Enterprise Edition zur Verfügung. Vorausgesetzt, es ist hinreichend Speicherplatz verfügbar, steht dann bei passender Konfiguration einem Sprung in die Vergangenheit nichts mehr im Weg.