oracle死鎖處理方法

2022-06-04 10:00:10 字數 2333 閱讀 1349

招數一:

1. 檢視被鎖的表:    

2.   select  

p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name  

from   v$process   p,v$session   a,   v$locked_object   b,all_objects  

c   where   p.addr=a.paddr   and   a.process=b.process   and  

c.object_id=b.object_id    

3.     

4.   解鎖:    

5.   alter   system     kill   session   '146';(其中146為鎖住的程序號) 

招數二:

1. select   sn.username, m.sid,sn.serial#, m.type, 

2.          decode (m.lmode, 

3.                  0, 'none', 

4.                  1, 'null', 

5.                  2, 'row share', 

6.                  3, 'row excl.', 

7.                  4, 'share', 

8.                  5, 's/row excl.', 

9.                  6, 'exclusive', 

10.                  lmode, ltrim (to_char (lmode, '990')) 

11.                 ) lmode, 

12.          decode (m.request, 

13.                  0, 'none', 

14.                  1, 'null', 

15.                  2, 'row share', 

16.                  3, 'row excl.', 

17.                  4, 'share', 

18.                  5, 's/row excl.', 

19.                  6, 'exclusive', 

20.                  request, ltrim (to_char (m.request, '990')) 

21.                 ) request, 

22.          m.id1, m.id2 

23.     from v$session sn, v$lock m 

24.    where (sn.sid = m.sid and m.request != 0)         --存在鎖請求,即被阻塞 

25.       or (    sn.sid = m.sid                         --不存在鎖請求,但是鎖定的物件被其他會話請求鎖定 

26.           and m.request = 0 

27.           and lmode != 4 

28.           and (id1, id2) in ( 

29.                         select s.id1, s.id2 

30.                           from v$lock s 

31.                          where request != 0 and s.id1 = m.id1 

32.                                and s.id2 = m.id2) 

33.          ) 

34. order by id1, id2, m.request; 

35.  

36. alter system kill session '91'; 

37. alter system kill session '144,633'; 

38. alter system kill session '91,21'; 

39. alter system kill session '112,5772';

2023年3月15日 20:44

Oracle 死鎖處理

鎖機制是oracle用來滿足隔離性,一致性的重要機制。但是不合理的業務邏輯可能導致死鎖的產生,生產環境如果發生大量死鎖,可能對業務造成很大的影響,所以必須及時處理。通過 dba blockers 檢視,可以查到死鎖的程序。我這裡由於是 19c 所以多了一列 con id 表示哪個 pdb。通過以下 ...

Oracle 死鎖處理

一 資料庫死鎖的現象 程式在執行的過程中,點選確定或儲存按鈕,程式沒有響應,也沒有出現報錯。二 死鎖的原理 當對於資料庫某個表的某一列做更新或刪除等操作,執行完畢後該條語句不提 交,另一條對於這一列資料做更新操作的語句在執行的時候就會處於等待狀態,此時的現象是這條語句一直在執行,但一直沒有執行成功,...

oracle檢視死鎖和處理方法

在運算元據庫中經常會遇到表死鎖問題,特別是不良的資料庫設計和操作的時候,更容易遇到死鎖問題。今天在系統中往oracle中新增資料時,特意快速多點幾次新增的時候,就出現了死鎖問題,而且剛好在讀取和更新表的主鍵值時出現死鎖。今天先不談如何設計不出現死鎖問題,只是記錄一下如何通過sql語句查詢和解決死鎖問...