如何杀掉Windows上Oracle的Server线程?

    有时会遇到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?

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • It hurts right here.
  • 就这儿疼.
  • It's bleeding. You'd better see a doctor about that cut.
  • 在流血呢, 你最好找个医生看看这伤口.
  • Call the doctor!
  • 快打电话叫医生!
  • Take two pills and have a good rest.
  • 吃两片药, 好好休息一下.
  • I hope you'll be well soon.
  • 祝你早日恢复健康.