今天遇到个问题,就是在执行procedure的时候出现了一个错误,Log里面如下显示:
2012/08/24 14:48:51 JTB002 ORA-00054: リソース・ビジー。NOWAITが指定されているか、タイムアウトしました
2012/08/24 14:48:51 JTB002 DELETEでエラーが発生しました(テーブル:JTT010WORK2、KEY:ALL)
网上一查,发现是Busy了,就类似操作系统Explorer同时处理一个文件的更新和删除一样。也就是说此资源被其他人给
占用了,后面的处理需要排队。
OK,原因先不管,解决再说。猜想需要干掉进程,果不其然。在DBA用户下,利用下面的语句来查出被占用资源SESSION
信息(类似进程的东西):
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;--这段SQL文抄自ITPUB
结果显示:
USERNAME SID SERIAL# LOGON_TIME
------------------------------ --- ------- ----------
XXX1 16 4590 12-08-24
XXX2 151 1898 12-08-24
这一查还查出来惊喜,原来还有一个,OK,不管怎么样两个都干掉。
利用下面语句代入刚才查询结果
alter system kill session 'SID,SERIAL#'--此文抄自百度空间
即:
alter system kill session '16,4590';
alter system kill session '151,1898';
课题:什么原因导致的系统资源被锁住呢这个解决了才算真的解决。恩回去慢慢研究。接着上班了。