ORA-00054 resource busy and acquire with NOWAIT specified

在开发过程中,经常会遇到ORA-00054,被卡住的表谁在用,什么时候能够好,都不知道,只能傻傻的等。。。真是悲哀。。。。从今天开始我不再傻等,我要变主动。。。。首先模拟一下ORA-00054的场景:

1. session 1先锁住一个表;

SQL> select * from test for update;

2. session 2对test表执行drop动作,就报错了;

SQL> drop table test;
drop table test
           *
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified

解决办法:

1. 首先看是谁锁住了test表:

SELECT t.SESSION_ID FROM v$locked_object t 
WHERE t.OBJECT_ID IN (SELECT object_id FROM dba_objects a WHERE a.OBJECT_NAME='TEST');

2.通过sid找serial#

SELECT t.SID,t.SERIAL# FROM v$session t WHERE t.SID=141;

3.杀了阻止你的session

ALTER SYSTEM KILL SESSION '141,7';

这下阻止你的session就被干掉了,你就可以drop table了。。。。不过杀之前,千万要搞清楚你要杀的session在干什么,别闯祸了。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值