- Kiran Dalvi
- 06 Dec, 2023
- 0 Comments
- 1 Min Read
ORA-00054: Resource Busy And Acquire With NOWAIT Specified
PROBLEM: SQL> create index IND_TEST on DBATEST ( OBJECT_ID); create index IND_TEST on DBATEST ( OBJECT_ID) * ERROR at line 1: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
Solution :
There are some other sessions which are blocking this sessions
1. Check for locked_objects
select lo.session_id,lo.oracle_username,lo.os_user_name, lo.process,do.object_name, decode(lo.locked_mode,0, 'None',1, 'Null',2, 'Row Share (SS)', 3, 'Row Excl (SX)',4, 'Share',5, 'Share Row Excl (SSX)',6, 'Exclusive', to_char(lo.locked_mode)) mode_held from v$locked_object lo, dba_objects do where lo.object_id = do.object_id order by 1,5 / Client Oracle OS Process Table Sid Username Username ID Locked MODE_HELD ----- ---------- ---------- ------------------------ ------------------------------ --------------- 271 DBACLASS oracle 3323 DBATEST Row Excl (SX)We can see, there is an exclusive lock on the table. Kill the session, to release the lock
SQL> select sid,serial#,username,status from v$session where sid=271; SID SERIAL# USERNAME STATUS ---------- ---------- ------------------------------ -------- 271 1409 DBACLASS INACTIVE SQL> alter system kill session '271,1409' immediate; System altered.Now re-run the create index statement,
SQL> create index IND_TEST on DBATEST ( OBJECT_ID); Index created.