如何在Windows 2000環(huán)境中Kill掉單個(gè)Oracle線程
2024-08-29 13:30:53
供稿:網(wǎng)友
如何在windows 2000環(huán)境中kill掉單個(gè)oracle線程
來源:http://metalink.oracle.com
關(guān)鍵字:oracle thread kill
描述:本文說明在windows環(huán)境下, orakill工具的使用
正文:
你遇到過下面類似的情況嗎?一個(gè)用戶進(jìn)程長(zhǎng)期占用資源而不釋放,導(dǎo)致oracle進(jìn)程占用了系統(tǒng)的大量資源,oralce系統(tǒng)的效率變得很低。如果簡(jiǎn)單的關(guān)閉重啟oracle 實(shí)例,勢(shì)必影響所有的用戶。有沒有辦法僅僅只kill掉有問題的用戶進(jìn)程而不用關(guān)閉整個(gè)oralce實(shí)例呢?答案是可以的,使用oralce提供的一個(gè)名叫orakill的工具。
大家都知道,windows 2000是一個(gè)基于線程的操作系統(tǒng),而不是象unix、linux那樣基于進(jìn)程的操作系統(tǒng)。整個(gè)oracle的后臺(tái)進(jìn)程、用戶進(jìn)程等,在windows 2000環(huán)境下,都包含在oracle.exe這單獨(dú)的一個(gè)體系進(jìn)程中了,通過查看’任務(wù)管理器’――’進(jìn)程’就可以看到。如果你不是使用mts多線程服務(wù)器的模式,如果你kill掉oracle.exe這個(gè)進(jìn)程,將導(dǎo)致整個(gè)oracle實(shí)例關(guān)閉,如同使用shutdown abort命令一樣。
由于windows自己沒有提過一個(gè)專門用來kill掉單個(gè)線程的工具,因此oracle從oracle7.3.3.6開始,自己提供了一個(gè)基于字符界面的用來在windows環(huán)境下強(qiáng)制kill掉一個(gè)線程的工具――orakill。
orakill的使用方法如下:
dos提示符下:>orakill sid thread
說明: sid oracle的sid號(hào)
thread oracle的線程id號(hào)
在sql*plus工具里面可以查詢到oracle的線程號(hào)
sql:>select p.spid threadid, s.osuser, s.program
sql:>from v$process p, v$session s
sql:>where p.addr = s.addr
結(jié)果如下:
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的核心后臺(tái)線程(dbwr, lgwr, smon or pmon),將導(dǎo)致oracle實(shí)例關(guān)閉。檢查oracle的核心后臺(tái)線程的方法如下:
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
查詢結(jié)果如下:
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]