亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle怎么快速清理kill會話

發布時間:2021-09-17 15:44:16 來源:億速云 閱讀:125 作者:chen 欄目:關系型數據庫

本篇內容主要講解“oracle怎么快速清理kill會話”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“oracle怎么快速清理kill會話”吧!

  今天開發反饋說,執行某個程序update的時候hang住,查看了一下是個小表,只有3000多行數據。第一反應是有鎖,把該實例的所有session kill后,執行update還是hang住,單獨執行了下where條件后面的select很快。于是覺得應該是在2節點上還有lock,于是執行查詢:

select * from gv$lock where id1=383105;

SQL> select * from gv$lock where id1=383105;

INST_ID        ADDR     KADDR      SID       TYPE     ID1       ID2       LMODE      REQUEST        CTIME      BLOCK      
-------------- -------- ---------- --------- -------- --------- --------- ---------- -------------- ---------- ----------
 2      0000000110AF61B0 0000000110AF6210      1333 TM          383105         0          3              0       6819          2

果然,2節點上還有一個session持有鎖。

連接到2節點,執行查詢:

SQL> select sid,serial#,osuser from v$session where sid=1333;

SID       SERIAL#        OSUSER                         
--------- -------------- ------------------------------
     1333          22559 6005821                       

alter system kill session '1333,22559';

殺了會話后,再查詢,發現1333的session還存在:

SQL> select sid,serial#,osuser from v$session where sid=1333;

SID       SERIAL#        OSUSER                         
--------- -------------- ------------------------------
     1333          22559 6005821 

于是想從系統層kill,可是通過以下sql查詢不到1333的spidoracle怎么快速清理kill會話

select p.pid,p.spid,s.sid,s.serial# from v$process p,v$session s where s.paddr=p.addr and s.sid=1333;

查詢后發現,當在Oracle中kill session以后, Oracle只是簡單的把相關session的paddr 指向同一個虛擬地址.此時v$process和v$session失去關聯,進程就此中斷。 然后Oracle就等待PMON去清除這些Session.所以通常等待一個被標記為Killed的Session退出需要花費很長的時間. 如果此時被Kill的process,重新嘗試執行任務,那么馬上會收到進程中斷的提示,process退出,此時Oracle會立即啟動PMON 來清除該session.這被作為一次異常中斷處理.

根據以下sql找到之前的paddr:

select p.addr from v$process p where pid <> 1
minus
select s.paddr from v$session s;

07000107C8C050F8
07000107DCC19D88

根據v$process的addr找到spid:

select * from v$process where addr in ('07000107C8C050F8','07000107DCC19D88');

然后找到系統進程號,殺掉就好了。由于部分過程沒有保留下執行結果,就只有記錄下sql了。

oracle@cq2:] ps -ef|grep 8847870
  oracle  8847870        1   3   Aug 06      - 734:23 ora_pz99_CQRPT2
  oracle 10420652 13107576   0 11:11:01  pts/1  0:00 grep 8847870
[oracle@cq2:] ps -ef|grep 14221746
  oracle 12583324 13107576   0 11:11:22  pts/1  0:00 grep 14221746
  oracle 14221746        1   0 08:16:07      -  0:04 oracleCQRPT2 (LOCAL=NO)
[oracle@cq2:] kill -9 14221746
[oracle@cq2:] ps -ef|grep 14221746
  oracle 12583046 13107576   0 11:12:11  pts/1  0:00 grep 14221746

到此,相信大家對“oracle怎么快速清理kill會話”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太谷县| 连云港市| 庄浪县| 定南县| 石景山区| 庆元县| 额尔古纳市| 荣成市| 齐河县| 西城区| 平凉市| 英吉沙县| 伊吾县| 凤山县| 团风县| 通河县| 宝山区| 尼玛县| 惠东县| 永康市| 蒙自县| 建昌县| 沈丘县| 东乌珠穆沁旗| 措勤县| 二手房| 呼伦贝尔市| 延津县| 旬阳县| 裕民县| 廉江市| 民乐县| 琼结县| 武隆县| 西畴县| 广元市| 金坛市| 丹阳市| 万全县| 临漳县| 晋中市|