模擬死鎖現象
- 利用PL/SQL Developer工具可以很容易模擬死鎖現象。用同一個數據庫的同一個用戶登錄2個PL/SQL Developer。
- 首先,在其中一個PL/SQL Developer隨便對數據庫的表執行一個更新操作,不要提交,狀態為“待提交”.
- 然后,在另一個PL/SQL Developer執行同樣的操作,此時這個操作會等待前面的事務提交之后才會執行,狀態為“等待”
- 對同一條記錄進行更新操作就會造成行死鎖現象,而對于不同的記錄進行更新操作是不會造成死鎖現象的。因為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.object_id;
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
alter system kill session 'SID,SERIAL#';
- 如果有ora-00031錯誤,則在后面加immediate
alter system kill session ' SID,SERIAL#' immediate;
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。