Como identificar la causa de la creación excesiva de archivelogs en Oracle

Pues eso amig@s,

Si observamos que el directorio donde se almacenan los archivelogs en nuestra base de datos, posiblemente sea bien por un cursor o consulta (query) que no esté bien optimizada o que esté ejecutando demasiadas veces en nuestra instancia.

Para identificar el proceso mediante el SID que está generando muchos archivelogs, debemos ejecutar la siguiente consulta:

SELECT s.sid, s.serial#, s.username, s.program,
           i.block_changes
           FROM v$session s, v$sess_io i
           WHERE s.sid = i.sid
           ORDER BY 5 desc, 1, 2, 3, 4;

Esta consulta devolverá de mayor a menor el proceso que está generando mas archivelogs por nuestra base de datos.

Luego con el SID, utilizando alguna herramienta gráfica (Sqldeveloper, Toad) podremos identificar la sesión en concreto y actuar en consecuencia.

También con esta otra alternativa, obtendremos más información de la sesión que consume más CPU:

SELECT se.username, ss.sid, ROUND (value/100) "CPU Usage", se.program,se.machine, SE.MODULE,se.action
FROM v$session se, v$sesstat ss, v$statname st
WHERE ss.statistic# = st.statistic#
   AND name LIKE  '%CPU used by this session%'
   AND se.sid = ss.SID
   AND se.username IS NOT NULL
  ORDER BY value DESC;

Espero que les resulte útil.

Salu2.


Share on Google Plus
    Blogger Comment

0 comentarios: