oracle 強殺進程


在ORACLE數據庫當中,有時候會使用ALTER SYSTEM KILL SESSION 'sid,serial#'殺掉一個會話進程,但是使用這個SQL語句殺掉會話后,數據庫並不會立即釋放掉相關的資源,有時候你會發現鎖定的資源很長時間也不會釋放,即使會話狀態為“KILLED”,依然會阻塞其它會話。

1、查看鎖表進程

 --查看鎖表進程SQL語句1: \**
select sess.sid, 
    sess.serial#, 
    lo.oracle_username, 
    lo.os_user_name, 
    ao.object_name, 
    lo.locked_mode 
    from v$locked_object lo, 
    dba_objects ao, 
    v$session sess 
where ao.object_id = lo.object_id and lo.session_id = sess.sid; 

 2、我們可以看到會話狀態為killed

SELECT Saddr, Sid, Serial#, Paddr, Username, Status
  FROM V$session t
 WHERE t.SID = '2587'

2、取上面查到的PADDR,

select addr, pid, spid, username from v$process where addr  ='0000000BC8BAB350'

3、在plsql的命令窗口輸入命令

完成之后再用第一個語句查看是否還有鎖表的會話是否被kill

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM