[设为首页]
中国-东莞·教育导航
  主页 | 教育资讯 | 推荐课程 | 公开课 | 考试 | 资格认证 | 外语 | 硕士考研 | 自考成考 | IT培训 | 金融财会 | 名校 | 学习资料
  导航:首页 - Windows环境中Kill掉Oracle线程

Windows环境中Kill掉Oracle线程
作者:城市学习网 来源:xue.net 更新日期:2007-12-17 阅读次数:
  你遇到过下面类似的情况吗?一个用户进程长期占用资源而不释放,导致Oracle进程占用了系统的大量资源,Oralce系统的效率变得很低。如果简单的关闭重启Oracle 实例,势必影响所有的用户。有没有办法仅仅只Kill掉有问题的用户进程而不用关闭整个Oralce实例呢?答案是可以的,使用Oralce提供的一个名叫Orakill的工具。
      大家都知道,Windows 2000是一个基于线程的操作系统,而不是象Unix、Linux那样基于进程的操作系统。整个Oracle的后台进程、用户进程等,在Windows 2000环境下,都包含在ORACLE.EXE这单独的一个体系进程中了,通过查看’任务管理器’――’进程’就可以看到。如果你不是使用MTS多线程服务器的模式,如果你Kill掉ORACLE.EXE这个进程,将导致整个Oracle实例关闭,如同使用Shutdown abort命令一样。
       由于Windows自己没有提过一个专门用来Kill掉单个线程的工具,因此Oracle从Oracle7.3.3.6开始,自己提供了一个基于字符界面的用来在Windows环境下强制Kill掉一个线程的工具――Orakill。
  Orakill的使用方法如下:
  Dos提示符下:>orakill sid thread
  说明: sid Oracle的Sid号
  thread  Oracle的线程id号
  在Sql*plus工具里面可以查询到Oracle的线程号
       sql:>Select p.spid THREADID, s.osuser, s.program
       sql:>From v$process p, v$session s
       sql:>Where p.addr = s.addr
  结果如下:
  THREADID  OSUSER                  PROGRAM
  --------- ----------------------- -----------------------------
  169       SYSTEM                  ORACLE.EXE
  215       SYSTEM                  ORACLE.EXE
  280       SYSTEM                  ORACLE.EXE
  267       SYSTEM                  ORACLE.EXE
  287       SYSTEM                  ORACLE.EXE
  288       SYSTEM                  ORACLE.EXE
  271       SYSTEM                  ORACLE.EXE 
  282       SYSTEM                  ORACLE.EXE 
  266
  269
  239       PROD_NT\djones          SVRMGRL.EXE
  281       SSMITH-PC\ssmith        SQLPLUSW.EXE
  12 rows selected.
  需要注意的是,如果你Kill掉的是Oracle的核心后台线程(DBWR, LGWR, SMON or PMON),将导致Oracle实例关闭。检查Oracle的核心后台线程的方法如下:
  sql:>Select vb.name NOME, vp.programe PROCESSNAME, vp.spid THREADID, vs,sid SID
  sql:>From v$session vs, v$process vp, v$bgprocess vb
  sql:>Where vb.addr <> ‘00’ and
  sql:>vb.paddr = vp.addr and
  sql:>vp.addr = vs.paddr
  查询结果如下:
   NOME  PROCESSNAME                         THREADID  SID
  ----- ---------------------------
  -------- --------- ------
  PMON  ORACLE.EXE                          169       1
  DBW0  ORACLE.EXE                          215       2
  LGWR  ORACLE.EXE                          280       3
  CKPT  ORACLE.EXE                          267       4
  SMON  ORACLE.EXE                          287       5
  RECO  ORACLE.EXE                          288       6
  SNP0  ORACLE.EXE                          271       7
  SNP1  ORACLE.EXE                          282       8
  8 rows selected.

报 名 此 课 程 / 咨 询 相 关 信 息
【预约登门】 【网上咨询】 【订座试听】 【现在报名】
课程名称
Windows环境中Kill掉Oracle线程
真实姓名
* 性 别
联系电话
* E-mail:
所在地区
咨询内容

      

相关文章:

Copyright© 2014 www.dgedu.com.cn 东莞教育在线 版权所有
中国·东莞
粤ICP备06023013号