Oracle error
ORA-00054
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
What usually causes it
DDL or a LOCK TABLE ... NOWAIT needed a lock that another transaction holds.
What to check first
Find the session holding the lock and let it commit, or set DDL_LOCK_TIMEOUT for your session so the DDL waits instead of failing straight away.
Scripts that help
- Locked objects and who holds themEvery object with a DML lock, the session holding it and the lock mode in plain words. Exclusive locks from sessions that are INACTIVE usually mean…
- Blocked sessions and their blockersSessions waiting on another session, joined to the blocker. Both sides show as SID,SERIAL#, ready to paste into a kill. On RAC, also check…
- Locked objects across all instances (three views)Three looks at DML locks from GV$LOCKED_OBJECT: which objects are locked and by whom, the lock mode per object, and the same with the OS process ID…