ORA-00054: 资源正忙 --锁表的解决方法

问题描述
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效 发生异常

原因:其他Session已经对目标表做了操作,且未提交操作,导致锁表,新的Session无法再对表进行DDL操作。

解决方法

--查询被锁的会话ID
select session_id from v$locked_object;
--查询结果:SESSION_ID-------9
 
--查询上面会话的详细信息:
SELECT sid, serial#, username, osuser FROM v$session where sid = 9;
--查询结果:serial#------99
 
--将上面锁定的会话关闭:
ALTER SYSTEM KILL SESSION '9,99';

单语句:

select a.object_name,s.sid,s.serial# from v$locked_object lo,dba_objects a, v$session s where a.object_id=lo.object_id and lo.session_id=s.sid;

alter system kill session 'sid,serial';

此处评论已关闭