首页 > 数据库 > Oracle > 正文

如何在Windows 2000环境中Kill掉单个Oracle线程

2024-08-29 13:30:53
字体:
来源:转载
供稿:网友
 
如何在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:[email protected]

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表