[摘錄]一次解決session無法完全刪除問題的全過程


          摘錄地址: http://blog.csdn.net/hooyang/archive/2005/04/27/365746.aspx

          開發環境:win2000server+oracle9i+delphi
          開發人員報告:在程序中殺了JOB,但是被操作的表還是鎖表狀態,
                        其中有一張日志表還在不斷插入記錄,直到執行完所有插入操作(一個漫長的等待過程)才能解鎖
          現場描述:oem中被殺job起的SESSION狀態為killed,其中有3張表被鎖點擊右鍵--》中斷會話 
                    提示: 標記要刪去的會話

          ===================================================================================================
          處理方法一 :

          1.SELECT saddr,sid,serial#,paddr,username,status FROM v$session WHERE username IS NOT NULL
          example:saddr,sid,serial#,paddr,username,status FROM v$session WHERE username = 'XNJW0419' ;
          SADDR SID SERIAL# PADDR USERNAME STATUS
          -------- ---------- ---------- -------- ------------------------------ --------
          542E0E6C 11 314 542B70E8 EYGLE INACTIVE 542E5044 18 662 542B6D38 SYS ACTIVE

          2.ALTER SYSTEM KILL SESSION 'sid, serial#';
          example:ALTER SYSTEM KILL SESSION '11,314';(注:在sqlplus中執行 )

          結果: 提示標記要刪去的會話 無法釋放會話,未成功解鎖

          ====================================================================================================
          處理方法二 :

          a、 找到你要殺掉的那個SESSION, 并記下paddr

          SELECT sid, username, paddr, status FROM v$session WHERE username = '用戶名' ;
          example:SELECT sid, username, paddr, status FROM v$session WHERE username = 'XNJW0419' ;
                 SID USERNAME                       PADDR    STATUS
          ---------- ------------------------------ -------- --------
                  10 XNJW0419                       2B5E2E2C KILLED

          b、 找到這個SESSION所對應的spid

          SELECT * FROM v$process WHERE addr = '上面查尋的paddr';
          example:SELECT ADDR,PID,SPID,USERNAME,SERIAL#,TERMINAL FROM v$process WHERE addr = '2B5E2E2C';
          ADDR            PID SPID         USERNAME           SERIAL# TERMINAL
          -------- ---------- ------------ --------------- ---------- ----------------
          2B5E2E2C         44 1204         SYSTEM                 -99 JWC

          c、 殺掉spid所標識的那個進程

          D:\>orakill sid  spid (注:cmd命令窗口中執行 只有oracle服務器端才有orakill命令)
          example: D:\>orakill oemrep 1204

          提示:KILL OF THREAD id 1204 IN INSTANCE oemrep successfully signalled.

          結果:成功刪除該SESSION,表也解鎖




          歡迎大家訪問我的個人網站 萌萌的IT人

          posted on 2007-09-18 17:03 見酒就暈 閱讀(168) 評論(0)  編輯  收藏 所屬分類: DB

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(3)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          BLOG

          FRIENDS

          LIFE

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 城口县| 天峨县| 边坝县| 蓝山县| 娱乐| 萨迦县| 巫山县| 迭部县| 牟定县| 天水市| 沅陵县| 玉溪市| 元江| 饶河县| 宣汉县| 库尔勒市| 洪湖市| 平顶山市| 华池县| 镇原县| 广汉市| 罗源县| 同江市| 辽阳市| 息烽县| 瑞安市| 龙海市| 和田县| 加查县| 岱山县| 北川| 马尔康县| 象山县| 河源市| 繁峙县| 兖州市| 石林| 华亭县| 辛集市| 武夷山市| 元谋县|