ORA-00494: enqueue held for too long by 'inst N, osid M'
OracleNe demek?
Kritik bir kaynak lock'u (enqueue, ör. CF - control file enqueue) bir süreç tarafından izin verilenden çok daha uzun süre tutuldu ve Oracle sistemin kilitlenmesini önlemek için o süreci öldürdü. alert.log içinde 'killing enqueue blocker' kaydıyla birlikte görülür.
Neden olur?
Bir arka plan ya da kullanıcı süreci I/O darboğazı, aşırı CPU baskısı ya da işletim sistemi askıya alması (swap, disk yavaşlığı) nedeniyle önemli bir enqueue'yu izin verilen sürenin ötesinde elinde tuttu; control file (CF) enqueue için bu süre _controlfile_enqueue_timeout ile belirlenir (varsayılan 900 sn). Gizli (underscore) parametreler yalnızca Oracle Support yönlendirmesiyle değiştirilmelidir. Genellikle depolama gecikmeleri ya da LGWR/CKPT gibi süreçlerin yavaşlamasıyla tetiklenir.
Nasıl çözülür?
alert.log ve öldürülen sürecin trace dosyasını inceleyip hangi enqueue'nun (çoğunlukla control file) ve hangi arka plan sürecinin sorumlu olduğunu belirleyin. Asıl neden genellikle depolama/G-Ç gecikmesidir: disk yanıt sürelerini, çoklu yol (multipath) ve denetim (controller) sağlığını kontrol edin. CPU/bellek baskısını ve swap kullanımını azaltın. Tekrar ederse Oracle Support ile trace analizini paylaşın.
Aynı motorda diğer kayıtlar
- 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