0% ont trouvé ce document utile (0 vote)
60 vues13 pages

Récupération de Données avec Flashback

Transféré par

Jlassi Dorra
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
60 vues13 pages

Récupération de Données avec Flashback

Transféré par

Jlassi Dorra
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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’ existence 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
Emplacement 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’un 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

Vous aimerez peut-être aussi