ORA-00494: enqueue held for too long by 'inst N, osid M'
OracleWhat does it mean?
A critical resource enqueue (e.g. CF - control file enqueue) was held by a process for much longer than allowed, and Oracle killed that process to prevent the system from hanging. It appears in alert.log together with a 'killing enqueue blocker' entry.
Why does it happen?
A background or user process held an important enqueue beyond the allowed time because of an I/O bottleneck, heavy CPU pressure or an OS stall (swapping, slow disks); for the control file (CF) enqueue this time is set by _controlfile_enqueue_timeout (default 900 s). Hidden (underscore) parameters should only be changed under Oracle Support guidance. Usually triggered by storage latency or slow processes such as LGWR/CKPT.
How to fix it
Review alert.log and the trace file of the killed process to determine which enqueue (usually the control file) and which background process is responsible. The real cause is usually storage/I/O latency: check disk response times, multipath and controller health. Reduce CPU/memory pressure and swap usage. If it recurs, share the trace analysis with Oracle Support.
More from this engine
- ORA-01102cannot mount database in EXCLUSIVE mode
- ORA-29913error in executing ODCIEXTTABLEOPEN callout
- ORA-19804cannot reclaim N bytes disk space from M bytes limit
- ORA-04021timeout occurred while waiting to lock object
- ORA-04061existing state of package/procedure has been invalidated
- ORA-01466unable to read data - table definition has changed
- ORA-08176consistent read failure; rollback data not available