<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 | 国产成人A亚洲精V品无码| 美女视频黄a视频全免费网站色| 性色av免费观看| 亚洲国产欧美一区二区三区| 精品免费久久久久久成人影院| 亚洲国产欧洲综合997久久| 免费一级毛片在线播放| 色多多A级毛片免费看| 中文亚洲AV片在线观看不卡| a毛片在线还看免费网站| 吃奶摸下高潮60分钟免费视频| 亚洲av永久无码天堂网| 四虎影视在线永久免费观看| 一个人看的www免费在线视频| 亚洲免费观看视频| 最近2019免费中文字幕视频三 | 久久久久成人片免费观看蜜芽| 亚洲成a人片在线观看日本| 91成人在线免费视频| 91丁香亚洲综合社区| 一本久久综合亚洲鲁鲁五月天| 一区二区3区免费视频| 亚洲图片在线观看| 性短视频在线观看免费不卡流畅| 亚洲乱人伦中文字幕无码| 亚洲一区二区三区乱码A| 日本高清免费观看| 亚洲综合av一区二区三区不卡| 好男人资源在线WWW免费| 免费人成视频x8x8入口| 久久免费精品一区二区| 亚洲日本va在线观看| 亚洲区小说区图片区| 在线观看的免费网站无遮挡| 亚洲AV无码一区二区三区网址 | 亚洲一区免费视频| 亚洲人成网站观看在线播放| 久久精品免费视频观看|