Oracle Flashback Query
Grundsätzlich ist es eine Art von SQL, die Daten in der Datenbank zu einem früheren Zeitpunkt existiert, aber zu der Zeit läuft der sql möglicherweise nicht vorhanden oder verändert wurden zugreift. Um dies zu tun, verwendet Oracle die Daten, die verfügbar sind während eines Zeitabschnitts UNDO. In diesem Segment, wie bekannt ist, die Daten vor einer Reihe von Änderungen gespeichert. Es wird verwendet, um die Konsistenz in der Lektüre eine Konsultation vor der Bestätigung der Änderungen (Commit) zu gewährleisten und kann in einer möglichen Erholung (Rollback) verwendet werden.
sys> Zuschuss auf dbms_flashback zu user1 auszuführen;
Hier ist ein Beispiel. Angenommen, Sie möchten über eine Tabelle, die Rechnungen cl enthält erkundigengende und wollen den Kunden Daten, die wir zuvor gelöscht haben Zugriff:
sys> wählen, um char (sysdate, 'dd-mm-yyyy hh24: mi') from dual fecha_sistema;
Eine halbe Stunde später mit dem Kommando:
sys> exec dbms_flashback.enable_at_time (to_date ('12-09 bis 2011 00.05, 'DD-MM-YYYY HH24: MI'));
sys> exec dbms_flashback.enable_at_time (to_date ('12-09 bis 2011 00.05, 'DD-MM-YYYY HH24: MI'));
PL / SQL-Prozedur erfolgreich abgeschlossen.
sys> select * from WHERE t_facturas cod_cliente = '00125 ';
... ...
... ...
... ...
... & Hellip;
4 ausgewählte Datensätze.
sys> execute dbms_flasback.disable;
sys> select count (*) aus t_facturas WHERE cod_cliente = '00125 ';
count (*)
------
0
Kann durch den Zugriff auf die gleiche Änderungsnummer SCN gewonnen werden:
sys> dbms_flashback.get_system_change_number wählen from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1307125
sys> exec dbms_flashback.enable_at_system_change_number (1307125);
PL / SQL-Prozedur erfolgreich abgeschlossen
Es ist auch möglich, die Aussage "Wählen Sie ...wie von ... ":
sys> select * from WHERE t_facturas cod_cliente = '00125 'TO_TIMESTAMP als der Zeitstempel ('12-09 bis 2011 00.05', 'DD-MM-YYYY HH24: MI');
sys> select * from WHERE t_facturas cod_cliente = '00125 'als der scn 1307125;
Beachten Sie, dass während der Sitzung in Flashback Query-Modus, können wir nur ausführen SELECT-Anweisungen. Die Update-Anweisungen (einfügen, löschen und aktualisieren) sind nicht erlaubt.
In der täglichen Arbeit mit dieser Option ist nützlich, um temporäre Tabellen verwenden, um mit den abgerufenen Daten zu arbeiten:
sys> create table t_facturas_antas (select * from WHERE t_facturas cod_cliente = '00125 'TO_TIMESTAMP als der Zeitstempel ('12-09 bis 2011 00.05,' DD-MM-YYYY HH24: MI ');
Andere Optionen Flashback Query
- Flashback Version Query: Der Zugang zu historischen Änderungen an einer Tabelle.
- Flashback Transaction Query: Der Zugang zu historischen Veränderungen in einer bestimmten Transaktion.
- Flashback Table: Der Zugriff auf Daten vor, jedoch für eine einzelne Tabelle.
- Flashback Drop: Abrufen eines gelöschten Tabelle ("Recycle Bin").
- Flashback Database: Lets verlassen die DB, wie es in einer vergangenen Zeit war.Ähnlich wie ein Backup wiederherstellen, aber mit dem Zeitdruck der Prozesse Rückblende, aber viel schneller auf die Backup-Kopie zu erhalten. Sie müssen Flashback-Modus und die Flash Recovery-Bereich aktiviert haben.
Einige dieser Optionen erfordern, dass der Manager "Enterprise Edition" ist.
Es ist, wie erwähnt, eine sehr nützliche Anweisung mit mehreren Optionen "zurückspulen" und dass wir mehr als eine Prise zu nehmen.