Oracle Flashback Query

Esaminiamo brevemente in questo messaggio funzionalità di query flashback fornite dal Gestore DB Oracle 9i dopo versione.

Fondamentalmente si tratta di un tipo di sql che accede ai dati esistenti nella banca dati in un momento precedente, ma al momento l'esecuzione del sql potrebbe non esistono o sono stati alterati. Per fare questo, Oracle utilizza i dati che sono disponibili in un segmento di tempo UNDO. Questo segmento, come è noto, i dati memorizzati prima di una serie di modifiche. Viene utilizzato per garantire la coerenza nella lettura di una consultazione prima della conferma delle modifiche (commit) e può essere utilizzato in un possibile recupero (rollback).

Realizzazione grafica di Flashback Query Oracle

La sentenza ci permette di vedere i dati flashback query nella tabella che sono state eliminate o modificate.Esecuzione di una query flashback di accedere ai dati da un quadro di dati coerenti ad un certo punto, questa volta specificando al sistema o il numero di modifica del sistema (SCN). Il database deve essere impostato su Automatico Annulla lavoro Management (AUM). Per questa recensione i seguenti parametri:
UNDO_MANAGEMENT = auto
undo_tablespace = UNDOTBS001 (tablespace che ospita il segmento annulla)
UNDO_RETENTION = 3600 (tempo in secondi che abbiamo mantenuto i dati nel segmento annulla)
Devono essere presi in considerazione nei confronti del parametro se il UNDO_RETENTION tablespace UNDO non è grande abbastanza per mantenere tutte le operazioni di quel tempo, il gestore del database sta per sostituire.Inoltre, ritengono che al fine di eseguire la query flashback comando deve disporre delle autorizzazioni sul BDMS_FLASHBACK pacchetto. Per fare questo:

sistema> concedere eseguire sul dbms_flashback a user1;

Ecco un esempio. Si supponga di voler indagare su una tabella che contiene cl bolletteseguenti e desidera accedere ai dati dei clienti che abbiamo eliminato in precedenza:

sistema> selezionare a char (sysdate, 'dd-mm-aaaa hh24: mi') da due fecha_sistema;

fecha_sistema
-------------------------
12-09-2011 12:05
sistema> cancella da t_facturas DOVE cod_cliente = '00125 ';
4 file cancellati
sistema> commit;

  

Mezz'ora dopo eseguendo:

sistema> selezionare a char (sysdate, 'dd-mm-aaaa hh24: mi') da due fecha_sistema
fecha_sistema
------------------------- 12-09-2011 12:35

sistema> exec dbms_flashback.enable_at_time (to_date ('12-09-2011 12:05, 'DD-MM-AAAA HH24: MI'));

sistema> selezionare a char (sysdate, 'dd-mm-aaaa hh24: mi') da due fecha_sistema
fecha_sistema
-------------------------
12-09-2011 12:35

sistema> exec dbms_flashback.enable_at_time (to_date ('12-09-2011 12:05, 'DD-MM-AAAA HH24: MI'));

PL / SQL procedura completata con successo.

sistema> SELECT * FROM DOVE t_facturas cod_cliente = '00125 ';

... ...

... ...

... ...

... & Hellip;

4 record selezionato.

sistema> eseguire dbms_flasback.disable;

sistema> select count (*) da t_facturas DOVE cod_cliente = '00125 ';

count (*)

------

0

Può essere ottenuta con l'accesso al SCN stesso numero di modifica:

sistema> dbms_flashback.get_system_change_number scegliere tra due;

GET_SYSTEM_CHANGE_NUMBER

------------------------

1307125

sistema> exec dbms_flashback.enable_at_system_change_number (1307125);

PL / SQL procedura completata con successo

 

E 'anche possibile utilizzare selezionare l'istruzione' ...come di ... ':

sistema> SELECT * FROM DOVE t_facturas cod_cliente = '00125 'TO_TIMESTAMP come di timestamp ('12-09-2011 12:05', 'DD-MM-AAAA HH24: MI');

sistema> SELECT * FROM DOVE t_facturas cod_cliente = '00125 'come di scn 1307125;

Tenete presente che mentre la sessione è in modalità Flashback Query, possiamo solo eseguire istruzioni SELECT. Le istruzioni di aggiornamento (inserimento, cancellazione e aggiornamento) non sono ammessi.

Nel lavoro quotidiano con questa opzione è utile per utilizzare le tabelle temporanee per lavorare con i dati recuperati:

sistema> create table t_facturas_antcome (select * from DOVE t_facturas cod_cliente = '00125 'TO_TIMESTAMP come di timestamp ('12-09-2011 12:05,' DD-MM-AAAA HH24: MI ');

Altre opzioni di Flashback Query

Di seguito sono elencate alcune caratteristiche che Oracle fornisce le operazioni relative alle Flashback Query:
  • Versione Flashback Query: Accesso ai cambiamenti storici a una tabella.
  • Flashback Transaction Query: Accesso ai cambiamenti storici in una particolare transazione.
  • Tabella flashback: Accesso ai dati di cui sopra, ma per una sola tabella.
  • Flashback Drop: Recuperare una tabella eliminata ('Cestino').
  • Flashback Database: Consente di lasciare il DB come era in un tempo passato.Simile a ripristinare un backup, ma con i vincoli di tempo dei processi di flashback, ma molto più veloce per recuperare la copia di backup. Devi avere attivato la modalità flashback e la zona di recupero flash.

Alcune di queste opzioni richiedono che il gestore è 'Enterprise Edition'.

Si tratta, come detto in una dichiarazione a portata di mano, con opzioni multiple "rewind" e che possiamo prendere più di un pizzico.