LogMiner es una
utilidad de Oracle para examinar el contenido de los archivos redolog y
archivelogs, como sabemos en los redologs son almacenan todos los cambios
realizados en la base de datos y sirven para la recuperación de la base de
datos en caso de un fallo del sistema manejador de base de datos RDBMS, los
archevelogs son los redologs almacenados de forma histórica y sirven para
recuperaciones de base de datos en conjunto con el backup RMAN.
Para que nos sirve esta utilidad:
- Determinar cuando pudo ocurrir una corrupción lógica en una base de datos, como errores cometidos en el nivel de la aplicación.
- Determinar qué acciones tendría que realizar para realizar una recuperación detallada en el nivel de transacción.
- Ajuste del rendimiento y planificación de la capacidad a través del análisis de tendencias.
- Realice un seguimiento de cualquier DML(Insert, update, delete) y (Create, alter, drop) ejecutados en la base de datos, el orden en que se ejecutaron y quién los ejecutó.
Como podemos examinarlos?
Bueno para esto es mejor un ejemplo examinando los redologs,
para esto vamos a realizar unas operaciones DDL(Create table) y DML (Insert).
create table
prueba_log_miner
(
campo1
number,
campo2 varchar2(30),
campo3 date
);
insert into
prueba_log_miner values(1,'PRUEBA LOGS',sysdate);
commit;
|
Luego de ejecutar las sentencias ahora hay que determinar
cual es el grupo de redolog activo donde se almaceno el registro de la modificación.,
luego ubicamos los archivos miembros del grupo y copiamos uno de ellos.
Ver el grupo activo
SELECT
GROUP#, ARCHIVED, STATUS FROM V$LOG;
|
Vemos que el grupo 2 es el activo, ahora seleccionar unos de
los archivos miembros del grupo numero 2
SELECT GROUP#
"GROUP", STATUS, MEMBER , TYPE FROM SYS.V_$LOGFILE WHERE GROUP# =2;
|
Ahora si vamos a usar las utilidades DBMS_LOGMNR
--Se indica
el archivo que se cargara los logs almacenados
Begin
SYS.DBMS_LOGMNR.ADD_LOGFILE(
'E:\ORACLE\DATA\BASE\ONLINELOG\G2_REDO01.LOG',
sys.dbms_logmnr.New);
end;
--Se realiza
la carga del archivo al diccionario.
Begin
SYS.DBMS_LOGMNR.START_LOGMNR
(
Options => sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG
);
end;
|
sys.dbms_logmnr.New Usamos para indicar que se realizara una
carga nueva si es un solo archivo, pero si vamos a incluir más de uno el
siguiente archivo se pondría el sys.dbms_logmnr.Addfile, con esto podemos ver
mas de un archivo en el diccionario.
Ahora revisamos el contenido de los logs en la vista V$LOGMNR_CONTENTS
Select timestamp , session# , operation, sql_redo
From
V$LOGMNR_CONTENTS
where
sql_redo like '%prueba_log_miner%' or sql_redo like '%PRUEBA_LOG_MINER%'
Order by 1
desc
|
Listo, podemos ver el contenido del redo log. Ahora como
podemos ver el contenido del archivelog? Bueno es el mismo procedimiento, pero
debemos ubicar la ruta de los archivelogs.
Previo a esto debe de estar la base de datos en modo
ARCHIVELOG, vamos a generar unos tres switch de log para forzar al archivado de
los redologs.
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
|
Ahora revisamos el archivelog generado
select STAMP, NAME, FIRST_TIME
from V$ARCHIVED_LOG where FIRST_TIME>=sysdate -1 order by 1
desc ;
|
Tomamos los archivos generados para incluirlos en el script
Begin
SYS.DBMS_LOGMNR.ADD_LOGFILE(
'E:\ORACLE\BACKUP\BASE\ARCHIVELOG\LOG_D7IPROD_1662_0955901488_0001.ARC',
sys.dbms_logmnr.New);
SYS.DBMS_LOGMNR.ADD_LOGFILE(
'E:\ORACLE\BACKUP\BASE\ARCHIVELOG\LOG_D7IPROD_1663_0955901488_0001.ARC',
sys.dbms_logmnr.Addfile);
SYS.DBMS_LOGMNR.ADD_LOGFILE(
'E:\ORACLE\BACKUP\D7ITEST\ARCHIVELOG\LOG_D7IPROD_1664_0955901488_0001.ARC',
sys.dbms_logmnr.Addfile);
end;
Begin
SYS.DBMS_LOGMNR.START_LOGMNR
(
Options =>
sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG
);
end;
|
Realizamos el select
Select
timestamp ,
operation,
sql_redo
From V$LOGMNR_CONTENTS
where sql_redo like '%prueba_log_miner%' or sql_redo like
'%PRUEBA_LOG_MINER%'
Order by 1 desc;
|
Listo, podemos revisar las sentencias ejecutadas.
Referencias
https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_logmnr.htm#CCHEGJCG
No hay comentarios:
Publicar un comentario