Oracle ORA-00054锁表处理

ORA-00054 锁表处理

1. 现象

删除表的时候,提示资源繁忙。

SQL> drop table SALEMAN;
drop table SALEMAN

ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

2.处理

(1)锁对象

查询锁对象。

SQL> select t.OBJECT_ID,t.SESSION_ID,t.ORACLE_USERNAME from v$locked_object t;

      7454          5 SCOTT
     97645       1344 SCOTT

(2)数据库对象类型

在数据库对象表中确认锁对象类型:

SQL> select l.object_id, t.object_name, t.object_type
  2    from dba_objects t, v$locked_object l
  3   where t.object_id = l.object_id ;
  
      7454 PLAN_TABLE$                                                                      TABLE
     97645 SALEMAN                                                                          TABLE

97645 是对应的SALEMAN表,对应的SESSION_ID是1344 。

(3)解锁对象

SESSION_ID是1344 ,查询sid和 serial#值:

SQL> select sid, serial#, machine, program from v$session where sid = 1344 ;

      1344      56470 WORKGROUP\THINKPAD                                      plsqldev.exe

sid和 serial#值,解锁对象。

SQL> alter system kill session '1344,56470' ;

System altered

删除表成功:

SQL>  drop table SALEMAN;

Table dropped

你可能感兴趣的:(Oracle,oracle,数据库)