🩻 Análisis Postmortem con AWR: El caso de la AUD$ desbordada

Search for a command to run...

No comments yet. Be the first to comment.
MAMP | La Botica del DBA – Análisis de Casos Clínicos

Oracle transforma 23ai en Oracle AI Database 26ai aplicando el Release Update 23.26.0. Resumen práctico y mini-checklist para DBAs.

👨⚕️ Estimad@ colega DBA, arquitect@ o entusiasta cloud:En esta edición te traemos una fórmula que está revolucionando las estrategias multicloud: Oracle@GCP, una alianza estratégica que permite correr bases de datos Oracle directamente desde Google...

Introducción ¿Borraste accidentalmente datos en una tabla crítica de producción y no tienes un punto de restauración inmediato? ¿No puedes usar Flashback por limitaciones de configuración o licenciamiento? Aquí es donde LogMiner puede convertirse en ...

Oracle ha lanzado oficialmente la disponibilidad general de Oracle Database 23ai el 2 de mayo de 2024, como una versión de soporte a largo plazo (Long-Term Support Release)Oracle Database 23ai, una versión que marca un antes y un después en la gestió...

En ocasiones, las bases de datos nos hablan… pero no siempre estamos escuchando.
Esta vez, los síntomas eran difusos: lentitud intermitente, sesiones en espera, y una sensación general de que “algo no estaba bien”. Fue solo al revisar los reportes AWR cuando la verdad se reveló con claridad clínica: una tabla AUD$ desbordada, sin particionar y con auditoría activada sin control estaba consumiendo más recursos de los que imaginábamos.
Lo que parecía una simple configuración por defecto terminó generando esperas graves como buffer busy waits y gc buffer busy acquire, afectando al sistema completo.
En esta edición de la botica, te comparto un caso real que nos recordó por qué incluso las tablas del sistema merecen nuestra atención. Y como siempre, te llevas la receta: pasos claros para diagnosticar, corregir y prevenir este tipo de situaciones.
Porque en La Botica del DBA, cada historia trae una lección… y cada lección, su remedio.
Estos fueron los eventos de espera más dominantes:
| Evento | % del DB Time |
| buffer busy waits | 58.1% |
| gc buffer busy acquire | 31.6% |
| enq: HW | 7.6% |
La base estaba saturada por contención de buffers y problemas de concurrencia. Algo grave estaba ocurriendo detrás de escena.
El AWR señalaba consistentemente una tabla: SYS.AUD$. Al analizar más a fondo, vemos que:
Auditoría activada de forma amplia (nivel sentencia y objeto).
Inserciones continuas y concurrentes por parte de la aplicación.
Tabla no particionada.
Sin políticas de retención ni purga.
Sin optimización para entornos OLTP intensivos.
Esto generaba cuellos de botella por contención de bloques, latches y saturación de espacio libre en segmentos.
Si tienes auditoría activa en producción, esto te interesa:
✅ Particionar AUD$ por día, mes o rango.
✅ Usar DBMS_AUDIT_MGMT para manejar retención y purga automática.
✅ Limitar el nivel de auditoría solo a lo necesario.
✅ Mover AUD$ a su propia tablespace si aplica.
✅ Considerar migrar a auditoría unificada (Unified Auditing) en versiones modernas.
Aquí algunos comandos de apoyo que puedes tener a mano:
-- Ver cantidad de registros en AUD$
SELECT COUNT(*) FROM SYS.AUD$;
-- Consultar estadísticas de la tabla
SELECT * FROM DBA_TAB_STATISTICS WHERE TABLE_NAME = 'AUD$';
-- Inicializar gestión de auditoría
BEGIN
DBMS_AUDIT_MGMT.INIT_CLEANUP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
DEFAULT_CLEANUP_INTERVAL => 24 );
END;
/
-- Crear job automático de purga
BEGIN
DBMS_AUDIT_MGMT.CREATE_PURGE_JOB(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
AUDIT_TRAIL_PURGE_INTERVAL => 24,
AUDIT_TRAIL_PURGE_NAME => 'Purge_AUD$',
USE_LAST_ARCH_TIMESTAMP => TRUE );
END;
/
El análisis postmortem no es para culpar al muerto, sino para aprender y mejorar. El AWR nos mostró la evidencia, pero la causa raíz estaba en una mala configuración de auditoría, algo silencioso pero letal para el rendimiento.
Suscríbete a nuestro boletín y recibe cada semana/mes a mes un caso real, una solución y/o un tip de rendimiento directo de la botica.
🔗 www.laboticadeldba.com
📩 admin@laboticadeldba.com
Hasta la próxima consulta, colega DBA. — El Boticario del DBA 🧙⚗️