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

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

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

解决方法
Plan-A:等待原session执行完对表的操作,或commit对表的操作。

Plan-B:关闭原会话。

--查询被锁的会话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';
--语句2
select t2.username oracle用户名,
       t2.sid sid进程号,
       t2.serial# serial#序列号,
       t3.object_name 表名,
       t2.OSUSER 操作系统用户名,
       t2.MACHINE 机器名,
       t2.PROGRAM 操作工具,
       t2.LOGON_TIME 登陆时间,
       t1.LOCKED_MODE 锁表模式
  from v$locked_object t1, v$session t2, dba_objects t3
 where t1.session_id = t2.sid
   and t1.object_id = t3.object_id;

参考资料:
1、https://blog.csdn.net/wlf2601567/article/details/82623705 20210420
2、https://blog.csdn.net/weixin_43790613/article/details/109694739 20210420

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值