Cómo Mejorar el Rendimiento Degradado en Oracle RAC: Análisis de Memoria y Eventos de Espera.

ORA-4031, TNS-12637
🔬 Diagnóstico clínico: Lentitud severa, errores intermitentes y un RAC al borde del colapso
En esta edición de La Botica del DBA, te comparto un caso real que involucró un entorno de producción crítico, alojado en Oracle Cloud Infrastructure (OCI), sobre infraestructura Exadata. El síntoma inicial era claro: lentitud progresiva, sesiones en espera, y errores intermitentes de conexión (TNS-12637
) en múltiples instancias del clúster.
El problema escaló hasta transformarse en una degradación severa del rendimiento.
🔬 Primera observación: concurrencia, secuencias y contención
Uno de los focos del problema estaba relacionado con la secuencia ID_REG_RECETARIO.NEXTVAL
. Con una configuración inicial de CACHE=10
y más de 26,000 ejecuciones, el diccionario de datos se actualizaba constantemente, generando:
row cache lock
buffer busy waits
enq: TX - index contention
Una sola instancia podía sostener la carga, pero al levantar la segunda del clúster, la presión de concurrencia creaba un efecto dominó.
🧴 Tratamiento aplicado:
ALTER SEQUENCE BOTICARIO.ID_REG_RECETARIO CACHE 1000;
Este simple cambio redujo de 1300 a solo 23 las escrituras en el diccionario de datos por cada 26K valores generados.
🧠 Segunda observación: HugePages mal dosificadas = ORA-4031
El siguiente síntoma fue el famoso y temido ORA-4031
, con trazas que reportaban fallas al asignar memoria en los heaps de lectura/escritura de In-Memory Column Store (IMC). Las métricas mostraban una configuración deficiente de vm.nr
_hugepages
.
📌 El entorno requería más de 104K HugePages, pero el sistema operaba con mucho menos, generando:
Fragmentación de memoria
Presión durante el startup simultáneo de instancias
Fallos esporádicos de conectividad
🧪 Diagnóstico confirmado:
grep Hugepagesize /proc/meminfo
# Resultado: 2048 kB
🧾 Herramienta recomendada:
hugepages_settings.sh (Doc ID 401749.1)
💊 Tratamiento sugerido:
Calcular
vm.nr
_hugepages
adecuadamenteAplicar el cambio en una ventana de mantenimiento programada con reinicio
🩻 Análisis postmortem (AWR)
El análisis de los reportes AWR confirmó una sobrecarga significativa en la tabla AUD$, reflejada en esperas críticas que impactaban el rendimiento global del clúster:
Evento de Espera | % del DB Time |
buffer busy waits | 58.1% |
gc buffer busy acquire | 31.6% |
enq: HW - contention | 7.6% |
🔬 Observación de laboratorio:
La causa principal fue una operación de inserción masiva y continua sobre la tabla AUD$, en un entorno donde:
La auditoría no estaba particionada
No se aplicaban técnicas de retención ni purga automatizada
El diseño no estaba optimizado para alto volumen de concurrencia
🔍 Este patrón es más común de lo que parece y puede llevar a síntomas graves de contención en entornos RAC.
📖 ¿Te interesa profundizar en este caso específico?
Consulta el artículo detallado:
➡️ Análisis postmortem con AWR: el caso de la AUD$ desbordada
💊 Prescripción final:
Pequeñas dosis de ajuste, gran alivio.
Este caso nos recuerda que los problemas de rendimiento en Oracle RAC no siempre vienen de grandes bugs. A veces, una secuencia sin cachear o una mala configuración de memoria puede detener un entorno entero.
💊 Recomendaciones de La Botica Del DBA:
Cachea tus secuencias — especialmente si son muy invocadas
Calcula y configura adecuadamente HugePages
Monitorea AWR y los Top Events de forma proactiva
Evita que
AUD$
se convierta en un cuello de botellaHaz pruebas de carga con múltiples instancias activas
📫 ¿Quieres más recetas Oracle como esta?
Suscríbete a La Botica del DBA para recibir más casos reales, scripts útiles y aprendizajes prácticos desde el quirófano de producción.
📥 Escríbeme a: admin@laboticadeldba.com
Subscribe to my newsletter
Read articles from Mauricio Muñoz Palma directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Mauricio Muñoz Palma
Mauricio Muñoz Palma
Bienvenidos a "La Botica del DBA" Donde la pasión por las bases de datos Oracle se transforma en conocimiento y excelencia. Este espacio está diseñado para ser el laboratorio de ideas, soluciones y estrategias que todo DBA necesita para optimizar, innovar y liderar en el mundo de las bases de datos. Desde los fundamentos hasta las últimas tendencias, aquí encontrarás guías prácticas, análisis profundos y herramientas que impulsarán tu carrera y tus proyectos al siguiente nivel.