· El fichero
de alertas de oracle alert.log es uno de los ficheros que tradicionalmente
revisamos en busca de errores de la base de datos.
10.1. UBICACIÓN DEL ALERT LOG EN ORACLE 11G
select * FROM V$PARAMETER where name like '%background_dump_dest%';
show parameter background;
show parameter background_dump_dest;
10.2. UBICACIÓN DEL ALERT.LOG DE ORACLE 12C Y ORACLE 18C
- select * from v$diag_info;
$ORACLE_BASE/diag/rdbms/<sid>/<sid>/trace and is named alert_<sid>.log
Esta otra sentencia es muy completa
set lines 800
col inst_id form 9999 head inst
col name form a25
col value form a80 wrap
select * from v$diag_info order by name;
Hasta la versión 11g esta monitorización se hacía por medio del scripts que interactuaban con ficheros del sistema operativo, lo que nos llevaba a tener que mantener estos scripts para las distintas versiones de shells de sistema, o tener que instalar algún tipo de intérprete en el sistema que nos lo gestionara de manera multiplataforma.
10.1. UBICACIÓN DEL ALERT LOG EN ORACLE 11G
select * FROM V$PARAMETER where name like '%background_dump_dest%';
show parameter background;
show parameter background_dump_dest;
10.2. UBICACIÓN DEL ALERT.LOG DE ORACLE 12C Y ORACLE 18C
- select * from v$diag_info;
$ORACLE_BASE/diag/rdbms/<sid>/<sid>/trace and is named alert_<sid>.log
Esta otra sentencia es muy completa
set lines 800
col inst_id form 9999 head inst
col name form a25
col value form a80 wrap
select * from v$diag_info order by name;
Hasta la versión 11g esta monitorización se hacía por medio del scripts que interactuaban con ficheros del sistema operativo, lo que nos llevaba a tener que mantener estos scripts para las distintas versiones de shells de sistema, o tener que instalar algún tipo de intérprete en el sistema que nos lo gestionara de manera multiplataforma.
Una de
las grandes ventajas de la 11g es que Oracle nos ha obsequiado con una tabla de
base de datos que mapea esta información del alert.log dentro de la base de datos.
Estamos hablando de la tabla x$dbgalertext;
Mediante
la tabla x$dbgalertext podemos obtener toda la información que está en el
alert.log, su contenido es:
SQL>desc X$DBGALERTEX
Ahora bien, ¿cómo accedemos a ella?
La tabla no puede ser accedida directamente desde un usuario que no sea sys,
así que, lo que haremos será el crear una vista sobre esta tabla (a la que
llamaremos por ejemplo ficheroalert ) y permitirle que lo vea a nuestro usuario
de monitorización.
SQL>create view ficheroalert as select * from sys.x$dbgalertext;
grant select on sys.ficheroalert to MONITORIZACION;
·
La
siguiente sentencia permite ver las veces que se ha hecho un ALTER en lo que
llevamos de año.
SQL>select
ORIGINATING_TIMESTAMP,
MESSAGE_TEXT
from sys.x$dbgalertext
where ORIGINATING_TIMESTAMP >
TO_TIMESTAMP('01-01-14
00:00:00','DD-MM-RR HH24:MI:SS')
and ( MESSAGE_TEXT like
'ALTER%');
· La
siguiente sentencia permite ver las veces que se han hecho un ALTER en lo que
llevamos de un año (quitando el rman)
SQL>select
ORIGINATING_TIMESTAMP,
MESSAGE_TEXT
from sys.x$dbgalertext
where ORIGINATING_TIMESTAMP >
TO_TIMESTAMP('01-01-14
00:00:00','DD-MM-RR HH24:MI:SS')
and module_id not in ('rman')
and ( MESSAGE_TEXT like
'ALTER%')
and( MESSAGE_TEXT not like
'ALTER DATABASE BACKUP CONTROLFILE TO %')
· La
siguiente sentencia permite ver las veces que se ha llevado un evento de
arrancado de la bases de datos.
SQL>select
ORIGINATING_TIMESTAMP,
MESSAGE_TEXT
from sys.x$dbgalertext
where ORIGINATING_TIMESTAMP >
TO_TIMESTAMP('01-01-14
00:00:00','DD-MM-RR HH24:MI:SS')
and( MESSAGE_TEXT like 'ALTER
DATABASE OPEN%');
10.3. BUSCANDO LA UBICACIÓN DEL ALERT.LOG CON ADRCI (Linux, Solarix)
ADRCI: (ADR Command Interpreter) está disponible a partir de la versión 11g de Oracle y nos permite rotar/eliminar de manera sencilla así como establecer las políticas de retención para los logs de las instancias de base de datos, tanto los de Alert como Trace, cdump, hm, incident y utscdmp.
Su manejo es sencillo, para nuestro caso solo es hacer el llamado de la herramienta desde el prompt del sistema operativo.
-bash-5.0$ adrci
ADRCI: Release 12.1.0.2.0 - Production on Sat Nov 27 08:20:37 2021
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"
adrci> show alert
Choose the home from which to view the alert log:
1: diag/clients/user_oracle/host_2811459066_82
2: diag/rdbms/incorepr/INCOREPR2
3: diag/rdbms/sfcorepr/SFCOREPR1
4: diag/rdbms/sfcorepr/SFCOREPR2
5: diag/rdbms/repoprd/REPOPRD2
6: diag/tnslsnr/colombia4/mgmtlsnr
7: diag/tnslsnr/colombia4/listener_backup
8: diag/tnslsnr/colombia4/listener_copia_dataguard
9: diag/tnslsnr/colombia4/listener_dataguard
Q: to quit
Con el comando del SHOW podemos ver el contenido de los archivos por cantidad de lineas.
Please select option: SHOW ALERT -TAIL 50
Please select option: 3
Output the results to file: /tmp/alert_69613_1_SFCOREPR1_1.ado
Muchas gracias, me sirvió
ResponderEliminar