溫馨提示×

溫馨提示×

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

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

Oracle inactive session的清理

發(fā)布時(shí)間:2020-02-27 04:32:08 來源:網(wǎng)絡(luò) 閱讀:688 作者:lych528 欄目:關(guān)系型數(shù)據(jù)庫

STATUS

ACTIVE - Session currently executing SQL

INACTIVE

KILLED - Session marked to be killed

CACHED - Session temporarily cached for use by Oracle*XA

SNIPED - Session inactive, waiting on the client

(1)active 處于此狀態(tài)的會(huì)話,表示正在執(zhí)行,處于活動(dòng)狀態(tài)。

        官方文檔說明:

        Any session that is connected to the database and is waiting for an event that does not belong to the Idle wait class is considered as an active session.

(2)killed處于此狀態(tài)的會(huì)話,被標(biāo)注為刪除,表示出現(xiàn)了錯(cuò)誤,正在回滾。

        當(dāng)然,也是占用系統(tǒng)資源的。還有一點(diǎn)就是,killed的狀態(tài)一般會(huì)持續(xù)較長時(shí)間,而且用windows下的工具pl/sql developer來kill掉,是不管用的,要用命令:alter system kill session 'sid,serial#' ;

(3)inactive 處于此狀態(tài)的會(huì)話表示不是正在執(zhí)行的

        該狀態(tài)處于等待操作(即等待需要執(zhí)行的SQL語句),通常當(dāng)DML語句已經(jīng)完成。 但連接沒有釋放,這個(gè)可能是程序中沒有釋放,如果是使用中間件來連接的話,也可能是中間件的配置或者是bug 導(dǎo)致。

        inactive對數(shù)據(jù)庫本身沒有什么影響,但是如果程序沒有及時(shí)commit,那么就會(huì)造成占用過多會(huì)話。容易是DB 的session 達(dá)到極限值。

解決方法:

1 SQLNET.EXPIRE_TIME (適當(dāng)設(shè)置大?。?br/>2 alter profile default limit idle_time 5;

根據(jù)下列SQL,再根據(jù)應(yīng)用服務(wù)器主機(jī)名,可判斷應(yīng)用的連接數(shù)情況:

SELECT b.MACHINE, b.PROGRAM, COUNT (*)
FROM v$process a, v$session b

WHERE a.ADDR = b.PADDR AND b.USERNAME IS NOT NULL
ADN A.TYPE !='BACKGROUND'
and a.status in ('ACTIVE','INACTIVE')
GROUP BY b.MACHINE, b.PROGRAM
ORDER BY COUNT (*) DESC;

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI