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.
In diesem DBA Tipp beschäftigen wir uns mit den Voraussetzungen für die Nutzung von Oracle Flashback und stellen dir die verschiedenen Varianten sowie deren Einsatzgebiete vor.
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.
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 2 enthalten.
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.
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.
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.
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.
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.
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.
Daten über einen langen Zeitraum zu archivieren und dabei jede Änderung mitzuverfolgen, fällt in den Bereich des Flashback Time Travel, früher Flashback Data Archive 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.
Basic Flashback Time Travel steht bereits in der Standard Edition 2 zur Verfügung. Optimization for Flashback Time Travel benötigt die Oracle Advanced Compression Option und steht daher nur in der Enterprise Version zur Verfügung.
* Für die Nutzung ist die Enterprise Edition nötig.
Flashback bietet viele Möglichkeiten, logisch verlorene Daten wiederherzustellen oder alte Daten anzusehen und zu vergleichen. Mit Ausnahme von Flashback Query und Flashback Time Travel (als Basic Variante) 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.
Hier findest du weitere Infos rund um Oracle aus unserem News & Insights Bereich.
Share this article