oracle中對於訪問頻率很高的包,存儲過程或者函數,會引起死鎖。對於用到了死鎖的對象的腳本都會無法運行,造成卡死,或者報異常:打開的連接太多。
這時需要使用dba權限賬戶去kill掉死鎖的對象。
使用
alter system kill session 死鎖對象的ID;
執行如下sql,查找出死鎖的ID,並將alter語句拼接好:
select Distinct 'alter system kill session '||chr(39)||b.sid||','||b.serial#||chr(39)||';'As kill對象sql語句, b.username,b.logon_time from v$locked_object a,v$session b where a.session_id=b.sid order by b.logon_time;然後將拼接的語句拿出來執行即可。