DBAtlas · データベース運用アトラス

ORA-00494: enqueue held for too long by 'inst N, osid M'('inst N, osid M' がエンキューを長時間保持)

Oracle

意味

重要なリソースのエンキュー (例: CF - 制御ファイルのエンキュー) がプロセスによって許容時間をはるかに超えて保持されたため、システムのハングを防ぐために Oracle がそのプロセスを強制終了した。alert.log に 'killing enqueue blocker' のエントリとともに記録される。

原因

I/O のボトルネック、高い CPU 負荷、または OS の停滞 (スワッピング、遅いディスク) のため、バックグラウンドまたはユーザープロセスが重要なエンキューを許容時間を超えて保持した。制御ファイル (CF) のエンキューでは、この時間は _controlfile_enqueue_timeout で設定される (デフォルト 900 s)。隠し (アンダースコア) パラメータは Oracle サポートの指示がある場合にのみ変更すべきである。通常、ストレージの遅延や LGWR/CKPT などの遅いプロセスがきっかけとなる。

対処方法

alert.log と強制終了されたプロセスのトレースファイルを確認し、どのエンキュー (通常は制御ファイル) とどのバックグラウンドプロセスが関与しているかを特定する。真の原因は通常ストレージ/I/O の遅延である: ディスクの応答時間、マルチパス、コントローラの健全性を確認する。CPU/メモリの逼迫とスワップ使用量を減らす。再発する場合は、トレースの分析結果を Oracle サポートと共有する。

DBAtlas で開く →

同じデータベースの他の項目