oracle死鎖的檢測及處理

2021-05-22 12:32:21 字數 1360 閱讀 6095

一. 死鎖的檢測

--查死鎖的會話。

select  a.sid, b.serial#,

decode(a.type,

'mr', 'media recovery',

'rt','redo thread',

'un','user name',

'tx', 'transaction',

'tm', 'dml',

'ul', 'pl/sql user lock',

'dx', 'distributed xaction',

'cf', 'control file',

'is', 'instance state',

'fs', 'file set',

'ir', 'instance recovery',

'st', 'disk space transaction',

'ts', 'temp segment',

'iv', 'library cache invalida-tion',

'ls', 'log start or switch',

'rw', 'row wait',

'sq', 'sequence number',

'te', 'extend table',

'tt', 'temp table',

'unknown') locktype,

c.object_name,

b.username,

b.osuser,

decode(a.lmode,   0, 'none',

1, 'null',

2, 'row-s',

3, 'row-x',

4, 'share',

5, 's/row-x',

6, 'exclusive', 'unknown') lockmode,

b.machine,d.spid ,b.program

from v$lock a,v$session b,all_objects c,v$process d

where a.sid=b.sid and a.type in ('tm','tx')

and c.object_id=a.id1

and b.paddr=d.addr

二. 發生死鎖後的處理方法

1. 9i以後的版本,oracle會自動檢測死鎖,檢測到有死鎖後會回滾或提交其中乙個事務,使死鎖消除.

2. alter system kill 'sid,sierel#' 注意:有可能產生兩個會話sid為一樣的情況,但seria是唯的,所以要用sid,seria標識乙個會話.

3. kill -9 pid

Oracle 死鎖的檢測查詢及處理

select bs.username blocking user bs.username db user ws.username waiting user bs.sid sid ws.sid wsid bs.serial serial bs.sql address address ws.machin...

oracle死鎖問題查詢及處理

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

死鎖的產生及檢測

先介紹一下鎖的分類 鎖的類別有兩種分法 1 從資料庫系統的角度來看 分為獨佔鎖 即排它鎖 共享鎖和更新鎖 a.共享 s 讀鎖,用於不更改或不更新資料的操作 唯讀操作 如 select 語句。b.更新 u 介於共享和排它鎖之間 可以讓其他程式在不加鎖的條件下讀,但本程式可以隨時更改。讀取表時使用更新鎖...