|
|
Oracle 8i - Le logminer !
Voici une autre possibilité, nouvelle en 8i qui nous rendra l'existence
plus facile !
Logminer permet de scruter les fichiers REDOLOG (en ligne ou
archivés) et dévoiler les transactions s'y trouvant. Les transactions
sont trouvées sur la base des requêtes SQL.
La vue V$LOGMNR_CONTENTS fournit les instructions SQL que ORACLE a exécuté
ainsi que les ordres SQL nécessaires pour revenir en arrière (UNDO).
Cette vue doit être peuplée avec le contenu des fichiers REDOLOG.
Certaines restrictions s'appliquent, lire la doc Oracle !
Ce qu'il faut faire pour l'utiliser:
-
Créer un dictionnaire de la base. Ce pas est facultatif mais
important pour la compréhension ultérieure des résultats. Pour
faire ceci, nous utiliserons une procédure fournie par Oracle qui écrira
DICTIONARY_FILENAME dans le répertoire DICTIONARY_LOCATION. Pré requis:
La base en mode MOUNT ou NOMOUT, DICTIONARY_LOCATION répertorié
par UTL_FILE_DIR dans INIT.ORA
-
Spécifier les redolog files à analyser. Vous le ferez avec DBMS_LOGMNR.ADD_LOGFILE
-
Démarrer l'analyse.
-
Visualiser les résultats.
Ce que nous obtenons, a gauche ce qui avait été fait, a droite ce
qu'on devrait faire pour défaire ;-) (extrait)
/*
delete from ANP.TAB_LOG where NOM = insert into
'Caulea' and PRENOM = 'Radu' and ANP.TAB_LOG(NOM,PRENOM,AGE,NAISS)
AGE = 39 and NAISS =
values
TO_DATE('28-JUN-1960 00:00:00', ('Caulea','Radu',39,TO_DATE('28-JUN
'DD-MON-YYYY HH24:MI:SS') and ROWID -1960 00:00:00', 'DD-MON-YYYY
= 'AAADBDAAIAAAFqKAAk';
HH24:MI:SS'));
delete from ANP.TAB_LOG where NOM = insert into
'Caulea' and PRENOM = 'Stefan' and ANP.TAB_LOG(NOM,PRENOM,AGE,NAISS)
AGE = 2 and NAISS =
values
TO_DATE('30-AOU-1997 00:00:00', ('Caulea','Stefan',2,TO_DATE('30-AO
'DD-MON-YYYY HH24:MI:SS') and ROWID U-1997 00:00:00', 'DD-MON-YYYY
= 'AAADBDAAIAAAFqKAAl';
HH24:MI:SS'));
*/
|