23 Apr 2018
resource busy and acquire with nowait specified解决方法
在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,或者是增加修改列字段时,常常会出现
ora-00054:resource busy and acquire with nowait specified
这样的错误。
主要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功。
解决方法如下:
-
1、用dba权限的用户查看数据库都有哪些锁
SELECT T2.USERNAME,T2.SID,T2.SERIAL#,T2.LOGON_TIME FROM V$LOCKED_OBJECT T1,V$SESSION T2 WHERE T1.SESSION_ID=T2.SID ORDER BY T2.LOGON_TIME;
-
2、根据sid查看具体的sql语句,如果sql不重要,可以kill
SELECT SQL_TEXT FROM V$SESSION A,V$SQLTEXT_WITH_NEWLINES B WHERE DECODE(A.SQL_HASH_VALUE, 0, PREV_HASH_VALUE, SQL_HASH_VALUE)=B.HASH_VALUE AND A.SID=76 ORDER BY PIECE;
-
3、kill该事务
--- sid,serial ALTER SYSTEM KILL SESSION '76,1377';
-
4、这样就可以执行其他的事务sql语句了
业精于勤,荒于嬉; 行成于思,毁于随。
pnunu
at 20:35