oracle查詢並解除死鎖程序
1、查詢死鎖程序
select
/*+rule*/
v$lock.sid,
decode(v$lock.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,
rtrim(object_type) ||
' '|| rtrim(owner) ||
'.'|| object_name object_name,
decode(lmode,0,
'none',1
, 'null',2
, 'row-s',3
, 'row-x',4
, 'share',5
, 's/row-x',6
, 'exclusive'
,'unknown'
) lockmode,
decode(request, 0,
'none',1
, 'null',2
, 'row-s',3
, 'row-x',4
, 'share',5
, 's/row-x',6
, 'exclusive'
, 'unknown'
) requestmode,
ctime,blockb
fromv$lock, all_objects
wheresid >
8andv$lock.id1 = all_objects.object_id
如果查詢結果有記錄表明有鎖
2、這個
sql可用來生成殺死死鎖程序的
sqlselect
/*+rule*/
'alter system kill session '''
|| a.sid ||
','|| b.serial# ||
''';'
fromv$lock a, all_objects c, v$session b
wherea.sid >
8anda.id1 = c.object_id
anda.sid = b.sid;
或select
/*+rule*/
'alter system kill session '''
|| a.sid ||
','|| b.serial# ||
''';'
fromv$lock a, v$session b
wherea.sid >
8anda.sid = b.sid;
3、把第二步的查詢結果匯出為指令碼,在
sqlplus
中執行該指令碼即可解除死鎖。
解除Oracle死鎖
解除oracle死鎖 1.查詢資料庫死鎖語句 select t2.username t2.sid t2.serial t2.logon time t3.sql text from v locked object t1,v session t2,v sqltext t3 where t1.sessio...
Oracle解除死鎖
電腦日益不給力,網路也隨時可能斷掉,用pl sql執行操作多多少少出現正在處理sql語句結果程式死掉了。導致這張表被鎖掉,無法執行sql操作。如何解除死鎖?1 執行下面sql,先檢視哪些表被鎖住了 select b.owner,b.object name,a.session id,a.locked ...
Oracle解除死鎖
電腦日益不給力,網路也隨時可能斷掉,用pl sql執行操作多多少少出現正在處理sql語句結果程式死掉了。導致這張表被鎖掉,無法執行sql操作。如何解除死鎖?1 執行下面sql,先檢視哪些表被鎖住了 select b.owner,b.object name,a.session id,a.locked ...