有时会遇到Oracle的会话挂起并占用大量CPU的情况, 用kill session也没有用, 当然这时有可能在做一些会话级的ROLLBACK的操作, 如果遇到这种情况还是等等吧, 否则你可以强行杀掉Server进程(Windows是线程), 在Linux/Unix的进程是很容易杀的, 在Windows下则可以用Oracle提供的orakill命令, 使用语法如下:
Usage: orakill sid thread
where sid = the Oracle instance to target
thread = the thread id of the thread to kill
The thread id should be retrieved from the spid column of a query such as:
select spid, osuser, s.program from
v$process p, v$session s where p.addr=s.paddr
这个说明已经很清楚了, 我很少接触Windows上的库, 所以没有遇到.
留言 (1)
我今天就遇到了一个这样的问题,
由于开发报表的软件出错(DELPHI7 有BUG),导致ORACLE 10.2.0.1占用资源达50%,只有一个SELECT语句竟然占用这么多资源,后台调试时只用了不到3钞钟就可以完成的. 于是开始杀这个残留的会话和进程.
先是: ALTER SYSTEM KILL SESSION 'SID,SERIAL#' ; 杀不掉.
然后用: ORAKILL ORA_SID SPID ,还是杀不掉.
气死我了.
操作系统是WINDOWS 2003 SP1
我开始怀疑 ORAKILL工具在WINDOWS 平台上是否真的有用?
或者 ORACLE 也有 BUG?
Posted by Jack | Oct 2, 2006 1:27 PM