Oracle 11g学习笔记(3)

今天遇到个问题,就是在执行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';

 

课题:什么原因导致的系统资源被锁住呢这个解决了才算真的解决。恩回去慢慢研究。接着上班了。

posted on 2012-08-24 14:19  扭头撞到墙  阅读(353)  评论(0编辑  收藏  举报