Вы находитесь на странице: 1из 12

LE FLASHBACK

• Permet de voir des données à une date ou un


SCN donnée (retour dans le passé)
• Crée une vue de la base à une date située dans le
passé
• Il est pratique pour récupérer des données suite à
une instruction erronée (Delete from employes et commit)
• Utilisé d’une manière transparente et par des
sessions concurrentes
• Une nouvelle ligne est ajoutée à chaque commit,
on pourra ainsi avoir les différentes versions
d’une ligne donnée
LE FLASHBACK
• On peut vérifier l’ éxistance du package
DBMS_FLASHBACK (dba_objects)
• Pour activer le flashback, il faut :
- Mettre le paramètre undo_management à AUTO
- Attribuer à undo_retention (secondes) la durée qu’on peut
remonter
• On doit avoir le droit d’exécuter le package
dbms_flashback
LE FLASHBACK / Procédures
• DBMS_FLASHBACK.ENABLE_AT_TIME :
permet d’activer le flashback et de retourner à
une image donnée (sysdate - ??)
• DBMS_FLASHBACK.ENABLE_AT_SYSTEM_CHANGE_NUMBER
• DBMS_FLASHBACK.DISABLE : permet de
désactiver le flachback et de retourner au
présent
FALSHBACK / VERSIONS
• On peut avoir les versions d’une ligne donnée
(la liste des modifications) en utilisant la
clause VERSIONS BETWEEN (SCN ou
TIMESTAMP) (générés par des commit)
Exemple
SELECT x, y, z
FROM table1 VERSIONS BETWEEN TIMESTAMP MINVALUE AND
MAXVALUE
On peut utiliser l’une des deux syntaxes :
– VERSIONS BETWEEN TIMESTAMP [lower bound] AND [upper bound];
ou
– VERSIONS BETWEEN SCN [lower bound] AND [lower bound].
versions pseudo-colonnes
• C’est la liste des colonnes qu’on peut utiliser
avec le flashback versions
– VERSIONS_STARTTIME
– VERSIONS_STARTSCN
– VERSIONS_ENDTIME
– VERSIONS_ENDSCN
– VERSIONS_XID (ID de la transaction)
– VERSIONS_OPERATION (I,U,D)
flashback_transaction_query
• Une nouvelle vue est proposée par oracle permettant de lister
les versions d’une donnée
• Contient par exemple la requête nécessaire à l’annulation de
la transaction
Flashback Query /AS OF clause
• Pour récupérer des données à partir du passé
on peut aussi utiliser l’une des commandes :
– AS OF TIMESTAMP <timestamp>
ou
– AS OF SCN <SCN>
Exemple
INSERT INTO EMPLOYEE_TEMP (SELECT * FROM EMPLOYEE
AS OF TIMESTAMP ('13-SEP-04 8:50:58','DD-MON-YY
HH24: MI: SS‘)
FLASHBACK / TABLE
• Pour activer le flashback niveau table il faut :
- Activer l’option row movement sur la table
ALTER TABLE <table> ENABLE ROW MOVEMENT;
- Avoir le privilège système FLASHBACK ANY TABLE ou le
privilège objet FLASHBACK object
- Avoir les privilèges SELECT, INSERT, UPDATE et DELETE
sur la table
FLASHBACK TABLE EMP TO TIMESTAMP <timestamp>
FLASHBACK TABLE EMP TO SCN <scn>
N.B
Les fonctions TIMESTAMP_TO_SCN et SCN_TO_TIMESTAMP permettent de
déterminer la valeur de l’SCN à une date donnée et inversement
RecycleBin
• Contenaire logique de toutes les tables supprimés
• Quand une table est supprimée la base l’enregistre afin
de la réutiliser (y compris les indexes, les contraintes et
les triggers)
• Ces objets seront à la corbeille jusqu’à ce qu’ils seront
purgés
• On peut explicitement purger un objet à travers sqlplus
• La commande show recyclebin permet de visualiser les
objets supprimés
• Vues du dictionnaire USER_RECYCLEBIN,
DBA_RECYCLEBIN
RecycleBin
• Show parameter recyclebin

• Show recyclebin
Restauration d’une table
• Pour restaurer à partir du recycle, on utilise la
commande :
FLASHBACK TABLE <nom de la table> TO BEFORE DROP

• On peut renommer la table en la restaurant


FLASHBACK TABLE "BIN$KSD8DB9L345KLA==$0" TO BEFORE DROP
RENAME TO <Nouveau nom>;

Avec cette option de renommage on pourra restaurer toutes les


versions d’une table
PURGE TABLE
• PURGE TABLE permet de purger une table ainsi que tous ses
objets (contraintes, indexes et triggers)
PURGE TABLE <nom de la table>;

PURGE TABLE "BIN$KSD8KJJUH45KLA==$0";


Si on a supprimé plusieurs versions d’une table, purge table <nom de la
table> supprimera les tables selon l’ordre FIFO
• PURGE TABLESPACE permet de purger tous les tables
supprimés (ainsi que leurs dépendances) d’un tablespace
donné
• PURGE DBA_RECYCLEBIN permet de purger tous les objets à
partir du recycle

Вам также может понравиться