解決Oracle死鎖問題步驟

lonecloud發表於2018-06-20

出現問題: 使用jdbc進行批量插入,一直卡在執行介面上,不走程式碼,預估應該是產生了死鎖

1. 使用如下語句查詢oracle資料庫中的死鎖的表和死鎖型別

select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id=a.objext_id

2.如果有鎖的話會出現記錄

owner:擁有者,

object_name:表名,

session_id:session的id,

locked_mode:鎖的型別,鎖的型別請參照:http://blog.itpub.net/9252210/viewspace-626388/

3. 查詢其session_id和sid進行解鎖

select b.username,b.sid,b.serial#,logon_time from v$locked_object,v$session b where a.session_id=b.sid order by b.logon_time

4. 查詢出來結果會有四段

username:使用者名稱

sid:session_id

serial#:序列化id

logon_time:加鎖時間

5. 進行解鎖

首先sid就是步驟3中查出來的sid,serial#是步驟3中的數值

alter SYSTEM kill session 'sid,serial#';

  

相關文章