<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-28  評論-15  文章-81  trackbacks-0
    在Oracle數據庫中,可以通過kill session的方式來終止一個進程,其基本語法結構為:

    alter system kill session 'sid,serial#' ;

     被kill掉的session,狀態會被標記為killed,Oracle會在該用戶下一次touch時清除該進程.

    我們發現當一個session被kill掉以后,該session的paddr被修改,如果有多個session被kill,那么多個session
    的paddr都被更改為相同的進程地址

    在這種情況下,很多時候,資源是無法釋放的,我們需要查詢spid,在操作系統級來kill這些進程.

    但是由于此時v$session.paddr已經改變,我們無法通過v$session和v$process關聯來獲得spid

    那還可以怎么辦呢?

    我們來看一下下面的查詢:

    SELECT P.ADDR FROM V$PROCESS P WHERE PID <> 1
    MINUS
    SELECT S.PADDR FROM V$SESSION S;

    現在我們獲得了進程地址,就可以在v$process中找到spid,然后可以使用Kill或者orakill在系統級來殺掉這些進程.

    實際上,應該是:

    當在Oracle中kill session以后, Oracle只是簡單的把相關session的paddr 指向同一個虛擬地址.

    此時v$process和v$session失去關聯,進程就此中斷.

    然后Oracle就等待PMON去清除這些Session.所以通常等待一個被標記為Killed的Session退出需要花費很長的時間.

    如果此時被Kill的process,重新嘗試執行任務,那么馬上會收到進程中斷的提示,process退出,此時Oracle會立即啟動PMON
    來清除該session.這被作為一次異常中斷處理.

    相關:
    orakill sid spid 其中sid為實例名,spid為線程號
    不過我運行時總是報錯:
    Could not attach to Oracle instance sid名

    posted on 2008-10-09 17:13 譚明 閱讀(1014) 評論(1)  編輯  收藏 所屬分類: Oracle

    評論:
    # re: Oracle session kill[未登錄] 2008-12-04 13:21 | test
    orakill sid spid sid 要改成你自己的數據庫的 sid的名字  回復  更多評論
      
    主站蜘蛛池模板: 日本免费一区二区三区最新| 亚洲熟妇无码一区二区三区| 久香草视频在线观看免费| 日韩成人在线免费视频| 亚洲狠狠婷婷综合久久蜜芽| 最好免费观看韩国+日本| 亚洲av无码不卡久久| 国产在线观看免费观看不卡 | 老司机亚洲精品影视www| 人妻仑刮八A级毛片免费看| 亚洲精品无码成人片在线观看| 特级毛片aaaa免费观看| 亚洲日本中文字幕天堂网| 在线视频网址免费播放| 日本亚洲视频在线| 免费91最新地址永久入口 | 国产亚洲福利在线视频| 国产免费AV片无码永久免费| 国产精品福利在线观看免费不卡| 亚洲Av无码精品色午夜| 91精品国产免费久久久久久青草| 亚洲中文无码永久免费| 亚洲成人影院在线观看| 免费人成黄页在线观看日本| 4444亚洲国产成人精品| 成人免费无码大片a毛片| 农村寡妇一级毛片免费看视频| 国产亚洲美日韩AV中文字幕无码成人| 日本视频免费高清一本18| 亚洲伦理一二三四| 国产一级一片免费播放i| a级毛片高清免费视频| 亚洲va精品中文字幕| 亚洲国产中文v高清在线观看| 国产免费无码AV片在线观看不卡| 亚洲国产综合人成综合网站00| 国产成人精品高清免费| 国内精品免费在线观看| 亚洲欧美日韩久久精品| 亚洲精品国偷自产在线| 国内自产少妇自拍区免费|