ORACLE: Analizar los archivos REDOLOG con LogMiner

   

Written by:

Las operaciones DDL (Create, Alter, Drop) y DML (Insert, Update, Delete) se registran en la base de datos en forma de “REDO”. Inicialmente llega al “Redo Log Buffer” (en memoria) para posteriormente ser grabado en los archivos “Online Redo Logs”, pudiendo terminar en los “Archived Redo Logs” para asegurar un mejor nivel de recuperabilidad de la información. Si tenemos activado el Archive LOG de ORACLE (Redo LOG) necesitaremos en algunos casos poder leer la información que ellos contienen. Como es un fichero encriptado necesitaremos utilizar el LOGMINER.

Nos conectamos al SQL:

MSDOS: sqlplus [usuario]/[password]

Activar el registro suplementario en el nivel de base de datos

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; 

Habilitar Supplemental Logging a nivel de toda la base de datos SQL

SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE; 


SUPPLEME
--------
YES

Configuramos el formato de las fechas de la sesión para poder consultar los datos y filtrarlos.

SQL> alter session set NLS_DATE_FORMAT=’DD-MON-YYYY HH24:MI:SS’; 

Buscamos el nombre del último fichero LOG creado por el RedoLOG.

SQL> SELECT NAME FROM V$ARCHIVED_LOG

WHERE FIRST_TIME = (SELECT MAX(FIRST_TIME) FROM V$ARCHIVED_LOG);


NAME 
-----------------------------------------------------------------------------------
C:\ORACLE\REDOLOG\ARC0000000051_0976270946.0001

Añadiremos el fichero al LOGMiner y lo ejecutaremos.

SQLEXECUTE DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => ‘C:\ORACLE\REDOLOG\ARC0000000051_0976270946.0001‘,
OPTIONS => DBMS_LOGMNR.NEW);


SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

Y visualizaremos el contenido importado en una tabla

SQL> SELECT * FROM V$LOGMNR_CONTENTS;

-- No puedo mostrar un ejemplo por el tamaño de los datos.

Una vez terminado cerramos el LogMiner y liberamos los datos temporales

SQLEXECUTE DBMS_LOGMNR.END_LOGMNR();

Deja un comentario