oracle 什麼時候才回收v$session 中status='KILLED'的程式
oracle 什麼時候才回收v$session 中status='KILLED'的程式,有些程式被殺掉之後一直沒有被回收
session需要釋放它所使用的資源,包括鎖,回滾段 等資源;如果session已經執行了很長時間,kill session 可能是一個非常消耗時間的過程
察看session目前使用的回滾段塊的數目資訊
SELECT USED_UBLK FROM V$TRANSACTIOn a ,v$session b where a.addr=b.taddr;
你可以看看要回滾的數量
1.判斷是否在回滾
select * from V$TRANSACTIOn where bitand(flag,power(2,7))>0
flag欄位值可以標識事務型別
select to_char( 7811, '0000000X' ), to_char( 7683, '0000000X') from dual;
TO_CHAR(7 TO_CHAR(7
--------- ---------
00001E83 00001E03
^ ^
0 indicates "normal user transaction"
8 indicates "rollback,most likely - means no more changes and you cannot commit"
2.回滾量:UBABLK欄位
3.檢視回滾時間
col td format a40
col es format 999,999
col totalwork format 999,999
col units format a10
SELECT decode(target_desc,NULL,decode(target,NULL,opname, concat(opname, concat (' - ',target))),decode(target,NULL,concat(opname, concat (' : ',target_desc)),concat(opname, concat (' : ',concat(target_desc,concat (' - ',target)))))) td,sofar,totalwork,units, start_time,TO_CHAR(elapsed_seconds,'99999990.00'), decode(sofar, 0, 0, round(elapsed_seconds*(totalwork-sofar)/sofar)) 剩下的時間
FROM v$session_longops
WHERE sid = &v_sid
AND serial# =&v_serial#
and sofar< totalWork
D SOFAR TOTALWORK UNITS START_TIME TO_CHAR(ELAPSED_SECONDS,'99999 剩下的時間
------------------------------------ ----- --------- -------- ----------- ------------------------------ ----------
Table Scan - SINO.ACC_POENTRYD 16099 16099 Blocks 2005-4-15 1 8.00 0檢視剩下的時間
4.你使用了alter session kill一個死程式,可能當時只是把session標識了killed,而v$process還存在,你可以用下面方法解決
UNIX平臺
SQL> SELECT spid
FROM v$process
WHERE NOT EXISTS ( SELECT 1
FROM v$session
WHERE paddr = addr);
% kill
WINDOWS:
select p.spid "OS Thread", b.name "Name-User", s.osuser,
s.program
from v$process p, v$session s, v$bgprocess b
where p.addr = s.paddr
and p.addr = b.paddr
UNION ALL
select p.spid "OS Thread", s.username "Name-User",
s.osuser, s.program
from v$process p, v$session s
where p.addr = s.paddr
and s.username is not null; 使用orakill如
SQL> SELECT spid, osuser, s.program,sid
FROM v$process p, v$session s
WHERE p.addr=s.paddr;
SPID OSUSER PROGRAM SID
------------------------ -------------------- --------------- ----------
6484 lifeng.fang sqlplus.exe 11
SQL> host orakill charset 6484;
Kill of thread id 6484 in instance charset successfully signalled.
5.你可以在sqlnet.ora加dcd
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31444259/viewspace-2153185/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- session是什麼時候建立的Session
- [20200319]KILL STATUS ='KILLED'的程式.txt
- C++中什麼時候用move,什麼時候用forward?C++Forward
- SESSION處於KILLED狀態下如何找出對應的程式Session
- 你打算敲程式碼到什麼時候?
- SoftReference 到底在什麼時候被回收 ? 如何量化記憶體不足 ?記憶體
- 什麼時候需要自動化什麼時候用自動化?
- 欄位管理,為什麼只有新增的時候才自動匹配欄位型別型別
- python中什麼時候使用自定義類Python
- Flink中什麼時候需要些returns()方法
- Python的類什麼時候用Python
- 什麼時候釋出
- 什麼時候能解脫
- 你是什麼時候”突然”學會程式設計的程式設計
- 能獨當一面的家用機器人,什麼時候才會出現?機器人
- 什麼時候採用socket通訊,什麼時候採用http通訊HTTP
- 為什麼程式設計師在學習程式設計的時候什麼都記不住?程式設計師
- 什麼時候該用vuex?Vue
- beego 什麼時候支援grpcGoRPC
- 新版什麼時候釋出?
- 到底什麼時候使用mqMQ
- python什麼時候縮排Python
- win11什麼時候釋出的 win11什麼時候推送詳細介紹
- 什麼才算是真正的程式設計能力?程式設計
- 什麼時候才是微服務拆分的最佳時機?微服務
- Mybatis什麼時候需要宣告jdbcType?MyBatisJDBC
- rman備份的時候讀取v$session_longops失敗導致備份失敗SessionGo
- 在 JavaScript 中,什麼時候使用 Map 或勝過 ObjectJavaScriptObject
- vue3中什麼時候封裝成元件? 什麼時候封裝成指令? 通過例項告訴你(typescript)Vue封裝元件TypeScript
- 什麼時候考慮使用無程式碼開發平臺
- 程式設計師與產品之間應該如何配合,什麼時候技術為重,什麼時候產品為重?程式設計師
- 什麼時候用linux系統多Linux
- shiro 什麼時候會進入 doGetAuthorizationInfo() ?
- 什麼時候選擇mmap而非read?
- 什麼時候都不晚!風變程式設計帶你時刻學習!程式設計
- 美國公司年審時間是在什麼時候的?
- MySQL什麼時候會使用內部臨時表?MySql
- 英語日期序數詞的寫法?什麼時候加st?什麼時候加th?1~31號分別是怎麼加的?