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

ORA-00054: Resource busy and acquire with NOWAIT specified or timeout expired(リソースがビジー。NOWAIT 指定またはタイムアウト)

Oracle

意味

ロック対象のリソース (行またはテーブル) が別セッションにロックされており、NOWAIT が指定されていたか DDL_LOCK_TIMEOUT が経過したため、即座に取得できなかった。

原因

通常は、テーブルが別トランザクションにロックされている間に DDL (ALTER TABLE、DROP、CREATE INDEX) を試行した場合。または SELECT ... FOR UPDATE NOWAIT でロック中の行に遭遇した場合。

対処方法

ロックを保持しているセッションを特定する: SELECT * FROM v$locked_object。v$session と v$lock を結合してブロッキングセッションを特定する。トランザクションの終了を待つか、必要に応じて ALTER SYSTEM KILL SESSION で終了させる。DDL では待機時間を設定できる: ALTER SESSION SET DDL_LOCK_TIMEOUT = 60; DDL は負荷の低いメンテナンス時間帯に実行する。

DBAtlas で開く →

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