ORA-00494: enqueue held for too long by 'inst N, osid M'
OracleЧто это значит?
Очередь (enqueue) критичного ресурса (например, CF — enqueue управляющего файла) удерживалась процессом намного дольше допустимого, и Oracle завершил этот процесс, чтобы предотвратить зависание системы. Появляется в alert.log вместе с записью 'killing enqueue blocker'.
Почему возникает?
Фоновый или пользовательский процесс удерживал важную очередь дольше допустимого времени из-за узкого места ввода-вывода, высокой нагрузки на CPU или зависания ОС (swapping, медленные диски); для enqueue управляющего файла (CF) это время задаётся _controlfile_enqueue_timeout (по умолчанию 900 с). Скрытые параметры (с подчёркиванием) следует менять только под руководством Oracle Support. Обычно вызывается задержками хранилища или медленными процессами, такими как LGWR/CKPT.
Как исправить
Изучите alert.log и трассировочный файл завершённого процесса, чтобы определить, какая очередь (обычно управляющего файла) и какой фоновый процесс ответственны. Реальная причина обычно в задержках хранилища/ввода-вывода: проверьте время отклика дисков, multipath и состояние контроллеров. Снизьте нагрузку на CPU/память и использование swap. При повторении передайте анализ трассировки в Oracle Support.
Ещё по этой СУБД
- 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