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.
Más entradas de este motor
- ORA-01102cannot mount database in EXCLUSIVE mode
- ORA-29913error in executing ODCIEXTTABLEOPEN callout (error al ejecutar el callout ODCIEXTTABLEOPEN)
- ORA-19804cannot reclaim N bytes disk space from M bytes limit (no se pueden recuperar N bytes de espacio en disco del límite de M bytes)
- ORA-04021timeout occurred while waiting to lock object (timeout al esperar el bloqueo de un objeto)
- ORA-04061existing state of package/procedure has been invalidated (se invalidó el estado existente del package/procedimiento)
- ORA-01466unable to read data - table definition has changed (no se pueden leer los datos; la definición de la tabla ha cambiado)
- ORA-08176consistent read failure; rollback data not available (fallo de lectura consistente; datos de rollback no disponibles)