Oracle 殺死死鎖程序

2021-09-08 21:36:19 字數 903 閱讀 8589

利用pl/sql developer工具可以很容易模擬死鎖現象。用同乙個資料庫的同乙個使用者登入2個pl/sql developer。

首先,在其中乙個pl/sql developer隨便對資料庫的表執行乙個更新操作,不要提交,狀態為「待提交」

然後,在另乙個pl/sql developer執行同樣的操作,此時這個操作會等待前面的事務提交之後才會執行,狀態為「等待」

對同一條記錄進行更新操作就會造成行死鎖現象,而對於不同的記錄進行更新操作是不會造成死鎖現象的。因為oracle的鎖機制力度比較細,實現了行級鎖機制。

selectb.owner,b.object_name,a.session_id,a.locked_mode

fromv$locked_object a,dba_objects b

whereb.object_id = a.object_id;

selectb.username,b.sid,b.serial#,logon_time

fromv$locked_object a,v$session b

wherea.session_id = b.sidorderbyb.logon_time;

altersystem kill session 'sid,serial#';

如果有ora-00031錯誤,則在後面加immediate

altersystem kill session ' sid,serial#'immediate;

Oracle殺死死鎖程序

oracle殺死死鎖程序 先檢視哪些表被鎖住了 select b.object name,a.session id,c.serial a.locked mode from v locked object a,dba objects b,v session c where b.object id a....

Oracle 殺死死鎖程序

oracle 殺死死鎖程序 利用pl sql developer工具可以很容易模擬死鎖現象。用同乙個資料庫的同乙個使用者登入2個pl sql developer。首先,在其中乙個pl sql developer隨便對資料庫的表執行乙個更新操作,不要提交,狀態為 待提交 然後,在另乙個pl sql d...

oracle 批量殺死 死鎖程序

有時候死鎖時需要殺死的程序有太多,乙個個殺會很麻煩。因此考慮用語句進行批量殺 這裡要用到的是 單引號與變數拼接,我最初一直卡在這裡。在網上搜到後才解決 最初版 declare cursor mycur is select b.username,b.sid,b.serial logon time fr...