ORA-00054错误解决方案

回复 收藏
ORA-00054错误解决方案

重建索引的时候报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                               228        574 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 '228,574';
2011-02-25 16:27 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: