Flashback Query
Oracle Flashback Query stelt het de gebruiker in staat om een consistente view te laten zien van de database zoals die op een punt in verleden was. Deze functionaliteit stelt vergelijkende rapportage in staat over tijde en recovery van logische corrupties.
  • Vereisten
  • Het gebruik van Flashback Query
  • Voorbeeld van Data Recovery
  • Restricties

Voorwaarden

Oracle Flashback Query kan alleen gebruikt worden als de server is geconfigureerd om Automatic Undo Management te gebruiken in plaats van rollback segments. De maximum tijdsperiode dat naar geflashbacked kan worden ,wordt gedefinieerd met de UNDO_RETENTION parameter in de init.ora file. Ook kan deze parameter gezet worden met:
ALTER SYSTEM SET UNDO_RETENTION = <seconden>;

Het gebruik van Flashback Query

Flashback Query wordt aan en uitgezet met de DBMS_FLASHBACK package. De tijd waarnaar je terug wilt kan gespecificeerd worden met het SCN of de echte tijd:
EXECUTE Dbms_Flashback.Enable_At_System_Change_Number(457);
EXECUTE Dbms_Flashback.Enable_At_Time('10-AUG-02 10:00:00');
ALs je eenmaal klaar bent met de read-only operaties kan je flasback query uitzetten met:
EXECUTE Dbms_Flashback.Disable;
De flashback query wordt uitgezet als de sessie eindigt als er geen aanroep naar de disable procedure is gedaan. Het huidige system change number kan teruggegeven worden met de Get_System_Change_Number function.

Voorbeeld Data Recovery

Er vanuit gaande dat alle data per ongeluk is verwijderd van de EMPLOYEES tabel om 10:30 AM , zouden we het kunnen recoveren met:

DECLARE
CURSOR c_emp IS
SELECT *
FROM employees;
v_row c_emp%ROWTYPE;
BEGIN
Dbms_Flashback.Enable_At_Time('10-AUG-02 10:25:00');
OPEN c_emp;
Dbms_Flashback.Disable;

LOOP
FETCH c_emp INTO v_row;
EXIT WHEN c_emp%NOTFOUND;
INSERT INTO employees VALUES
(v_row.employee_id, v_row.first_name,
v_row.last_name, v_row.email,
v_row.phone_number, v_row.hire_date,
v_row.job_id, v_row.salary,
v_row.commission_pct, v_row.manager_id,
v_row.department_id, v_row.dn);
END LOOP;
CLOSE c_emp;
COMMIT;
END;
/
Let op dat de Flashback Query sessie wordt uitgezet nadat de cursor is gemaakt zodat DML operaties uitgevoerd kunnen worden om de data te recoveren.

Restricties

  • De server moet geconfigureerd tworden om Automatic Undo Management te gebruiken.
  • Tijdens het gebruik van Flasback Query kan er geen DDL of DML uitgevoerd worden.
  • Flashback Query kan geen DDL operaties terugdraaien zoals DROP, alleen de DML aanpassngen op de data.
  • Flashback Query werk op code objects (Packages, Procedures, Function of Triggers). Indien aangeroepen zullen de huidige definities tegen de flasback data uitgevoerd worden.
 

Advertentie

>

Poll

Voorkeur
 

Wie is er aanwezig

We hebben 267 gasten online