欢迎光临
我们一直在努力

如何在Windows 2000环境中Kill掉单个Oracle线程-数据库专栏,ORACLE

建站超值云服务器,限时71元/月

 
如何在windows 2000环境中kill掉单个oracle线程

 

来源:http://metalink.oracle.com

关键字:oracle thread kill

描述:本文说明在windows环境下, orakill工具的使用

正文:

       你遇到过下面类似的情况吗?一个用户进程长期占用资源而不释放,导致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 mith        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.

                                                                 欢迎大家来交流mailto:stevenqiu@sohu.com

 

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 如何在Windows 2000环境中Kill掉单个Oracle线程-数据库专栏,ORACLE
分享到: 更多 (0)

相关推荐

  • 暂无文章