• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Windows環境中Kill掉Oracle線程

    發表于:2007-07-13來源:作者:點擊數: 標簽:
    你遇到過下面類似的情況嗎?一個用戶進程長期占用資源而不釋放,導致 Oracle 進程占用了系統的大量資源,Oralce系統的效率變得很低。如果簡單的關閉重啟Oracle 實例,勢必影響所有的用戶。有沒有辦法僅僅只Kill掉有問題的用戶進程而不用關閉整個Oralce實例呢

      你遇到過下面類似的情況嗎?一個用戶進程長期占用資源而不釋放,導致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.

      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>