ORA-00054

来源:互联网 发布:餐饮业进销存软件 编辑:程序博客网 时间:2024/04/28 23:53

      重建索引的时候报ORA-00054错误,此错误在Oracle 10G Error Messages是如下描述的:
      ORA-00054:resource busy and acquire with NOWAIT specified
      Cause:Resource interested is busy.
      Action:Retry if necessary. 
      此错误发生在resource被锁了,同时又发出一个NOWAIT的命令。例如在update一个表的同时对他重建索引。解决方法,等待resource的锁释放以后再试。释放的方法可以通过等待事务完成自动释放,也可以强制结束session的方法释放。具体方法根据实际需要来决定,下面是强制结束session的方法释放此resource的锁:

      1.查看数据库中那些用户产生了锁
SQL> select username,sid,serial#,logon_time from v$locked_object,v$session where v$locked_object.session_id=v$session.sid;
USERNAME                              SID    SERIAL# LOGON_TIME
------------------------------ ---------- ---------- -----------
NEWCCS                               1491      11152 2010-7-6 17

      2.根据SID查看具体的SQL语句
SQL> select sql_text from v$session,v$sqltext_with_newlines where decode(v$session.sql_hash_value,0,prev_hash_value,sql_hash_value)=v$sqltext_with_newlines.hash_value and v$session.sid=&sid order by piece;
      3.如果短时间内此SQL语句无法完成,且急需重建索引,那么kill此session
SQL> alter system kill session '1491,11152';