风哥教程

培训 . 交流 . 分享
Make progress together!

关于resource busy and acquire with nowait specified的解决方法

[复制链接]
内容发布:风哥| 发布时间:2014-1-26 10:52:44
关于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;

       如:testuser 339 13545 2009-3-5 17:40:05
       知道被锁的用户testuser,sid为339,serial#为13545


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=&SID ORDER BY PIECE;

      查出来的sql,如: BEGIN :ID := SYS.DBMS_TRANSACTION.LOCAL_TRANSACTION_ID; END;


3、kill该事务
      ALTER SYSTEM KILL SESSION '339,13545';



上一篇:expdp备份时出现ORA-01555: snapshot too old: rollback segment number too small
下一篇:Oracle library cache lock等待事件处理过程与解决思路
专业提供Oracle/MySQL/NoSQL/Linux数据库培训与技术支持服务,QQ号:113257174
关注风哥教程微信公众号itpux_com  ,了解本站最新技术资料的分享.

欢迎加QQ群,提供超多高质量Oracle/Unix/Linux技术文档与视频教程的下载。

Oracle/MySQL/Linux群4-5:189070296  150201289  
Oracle/MySQL/Linux群6-8:244609803   522261684   522651731
备注:请勿重复加群,另请注明 from itpux
回复

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门文章教程

  • 风哥Oracle数据库巡检工具V1.0(附2.6网页
  • 实战PHP与MySQL权威指南PDF电子书下载
  • 大数据技术与应用入门培训教程(电子版下载
  • Oracle 12cR2 九大新功能全面曝光_详解云数
  • Oracle OCP认证考试IZ0-053题库共712题数据
  • MySQL5权威指南(第3版)PDF电子版下载
快速回复 返回顶部 返回列表