DBAtlas · Atlas de operaciones de bases de datos

ORA-00494: enqueue held for too long by 'inst N, osid M' (enqueue retenido demasiado tiempo)

Oracle

¿Qué significa?

Un proceso mantuvo un enqueue de un recurso crítico (p. ej., CF - control file enqueue) mucho más tiempo del permitido, y Oracle terminó ese proceso para evitar que el sistema se colgara. Aparece en el alert.log junto con una entrada 'killing enqueue blocker'.

¿Por qué ocurre?

Un proceso en segundo plano o de usuario mantuvo un enqueue importante más allá del tiempo permitido por un cuello de botella de I/O, una fuerte presión de CPU o un bloqueo del SO (swapping, discos lentos); para el enqueue del control file (CF) este tiempo lo fija _controlfile_enqueue_timeout (900 s por defecto). Los parámetros ocultos (con guion bajo) solo deben cambiarse bajo la guía de Oracle Support. Suele desencadenarse por la latencia del almacenamiento o por procesos lentos como LGWR/CKPT.

Cómo solucionarlo

Revise el alert.log y el archivo de trace del proceso terminado para determinar qué enqueue (normalmente el del control file) y qué proceso en segundo plano son responsables. La causa real suele ser la latencia de almacenamiento/I/O: revise los tiempos de respuesta del disco, el multipath y el estado de la controladora. Reduzca la presión de CPU/memoria y el uso de swap. Si se repite, comparta el análisis del trace con Oracle Support.

Abrir en DBAtlas →

Más entradas de este motor