Flashback query
Co to jest?
Flashback query (FQ dla skrótu) to rodzaj zapytania sql pozwalający na obejrzenie danych na określony moment czasu. FQ wykorzystuje tak zwane segmenty undo .
Kiedy flashback query może się przydać
Użytkownik SCOTT wykasował dane z tabeli employees i zatwierdził transakcję. Ponieważ transakcja jest zatwierdzona danych nie można już odzyskać w normalny sposób. Pechowa transakcja została dokonana ok 40 minut temu. Z pomocą przychodzi nam wtedy 'flashback query'.
Jak to się robi
Zapytanie o jedną godzinę wstecz:
select * from ( select * from employees ) AS OF TIMESTAMP SYSDATE -(1/24) ;
Kiedy flashback query nie zadziała
Niestety w sytuacji gdy dokonamy operacji DDL, np DROP, ALTER czy CREATE, FQ nie pomoże. Nie będziemy w stanie uzyskać danych sprzed takiej operacji
ORA-01466: nie można odczytać danych - definicja tabeli jest zmieniona
Jeżeli nasze zapytanie będzie dotyczyło stanu tabeli sprzed zbyt długiego czasu dostaniemy błąd
ORA-08180: nie znaleziono migawki opartej na podanym czasie
Łukasz Goszczyński goszczu.pl