日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何查询oracle死锁,Oracle死锁查看和解决办法汇总

發(fā)布時間:2024/9/27 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何查询oracle死锁,Oracle死锁查看和解决办法汇总 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

由于生產(chǎn)的tomcat 經(jīng)常有假死問題,困擾很久,最后發(fā)現(xiàn)有死鎖,解決辦法分享

1、查看死鎖

1)用dba用戶執(zhí)行以下語句select username,lockwait,status,machine,program from v$session where sid in

(select session_id from v$locked_object)

如果有輸出的結果,則說明有死鎖,且能看到死鎖的機器是哪一臺。字段說明:

Username:死鎖語句所用的數(shù)據(jù)庫用戶;

Lockwait:死鎖的狀態(tài),如果有內(nèi)容表示被死鎖。

Status: 狀態(tài),active表示被死鎖

Machine: 死鎖語句所在的機器。

Program: 產(chǎn)生死鎖的語句主要來自哪個應用程序

2)用dba用戶執(zhí)行以下語句,可以查看到被死鎖的語句。select sql_text from v$sql where hash_value in

(select sql_hash_value from v$session where sid in

(select session_id from v$locked_object))

2、死鎖的解決方法

1)查找死鎖的進程:SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,

l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS

FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;

2)kill掉這個死鎖的進程:alter system kill session ‘sid,serial#’; (其中sid=l.session_id)

3)如果還不能解決:select pro.spid from v$session ses,

v$process pro

where

ses.sid=XX

and ses.paddr=pro.addr;

其中sid用死鎖的sid替換:

--ORACLE 就是查表,需要SYSTEM,SYS(有相應權限的用戶)執(zhí)行下面的SQL語句就可以了查看鎖代碼SELECT sn.username,

m.SID,

sn.SERIAL#,

m.TYPE,

DECODE(m.lmode,

0,

'None',

1,

'Null',

2,

'Row Share',

3,

'Row Excl.',

4,

'Share',

5,

'S/Row Excl.',

6,

'Exclusive',

lmode,

LTRIM(TO_CHAR(lmode, '990'))) lmode,

DECODE(m.request,

0,

'None',

1,

'Null',

2,

'Row Share',

3,

'Row Excl.',

4,

'Share',

5,

'S/Row Excl.',

6,

'Exclusive',

request,

LTRIM(TO_CHAR(m.request, '990'))) request,

m.id1,

m.id2

FROM v$session sn, v$lock m

WHERE (sn.SID = m.SID AND m.request != 0) --存在鎖請求,即被阻塞

OR (sn.SID = m.SID --不存在鎖請求,但是鎖定的對象被其他會話請求鎖定

AND m.request = 0 AND lmode != 4 AND

(id1, id2) IN (SELECT s.id1, s.id2

FROM v$lock s

WHERE request != 0

AND s.id1 = m.id1

AND s.id2 = m.id2))

ORDER BY id1, id2, m.request;

--解鎖代碼alter system kill session 'sid,SERIAL#';

--查看死鎖信息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",

bs.sql_hash_value "Sql hash", bs.program "Blocking App",

ws.program "Waiting App", bs.machine "Blocking Machine",

ws.machine "Waiting Machine", bs.osuser "Blocking OS User",

ws.osuser "Waiting OS User", bs.serial# "Serial#",

ws.serial# "WSerial#",

DECODE (wk.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 Invalidation',

'LS', 'LOG START OR Switch',

'RW', 'ROW Wait',

'SQ', 'Sequence Number',

'TE', 'Extend TABLE',

'TT', 'Temp TABLE',

wk.TYPE

) lock_type,

DECODE (hk.lmode,

0, 'None',

1, 'NULL',

2, 'ROW-S (SS)',

3, 'ROW-X (SX)',

4, 'SHARE',

5, 'S/ROW-X (SSX)',

6, 'EXCLUSIVE',

TO_CHAR (hk.lmode)

) mode_held,

DECODE (wk.request,

0, 'None',

1, 'NULL',

2, 'ROW-S (SS)',

3, 'ROW-X (SX)',

4, 'SHARE',

5, 'S/ROW-X (SSX)',

6, 'EXCLUSIVE',

TO_CHAR (wk.request)

) mode_requested,

TO_CHAR (hk.id1) lock_id1, TO_CHAR (hk.id2) lock_id2,

DECODE

(hk.BLOCK,

0, 'NOT Blocking', /**//* Not blocking any other processes */

1, 'Blocking', /**//* This lock blocks other processes */

2, 'Global', /**//* This lock is global, so we can't tell */

TO_CHAR (hk.BLOCK)

) blocking_others

FROM v$lock hk, v$session bs, v$lock wk, v$session ws

WHERE hk.BLOCK = 1

AND hk.lmode != 0

AND hk.lmode != 1

AND wk.request != 0

AND wk.TYPE(+) = hk.TYPE

AND wk.id1(+) = hk.id1

AND wk.id2(+) = hk.id2

AND hk.SID = bs.SID(+)

AND wk.SID = ws.SID(+)

AND (bs.username IS NOT NULL)

AND (bs.username <> 'SYSTEM')

AND (bs.username <> 'SYS')

ORDER BY 1;

由最代碼官方編輯于2013-12-13 22:58:42

總結

以上是生活随笔為你收集整理的如何查询oracle死锁,Oracle死锁查看和解决办法汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品黑人猛交高潮 | 性欧美17一18内谢 | 成年人午夜视频 | 久久大胆人体 | 午夜亚洲视频 | av国语| 成人av小说 | 中文字幕23 | 国产91国语对白在线 | 操日本老太太 | 日本中文字幕免费 | 无套爆插| 国产在线h | 免费在线一区二区三区 | 日本少妇裸体做爰 | 国产精品分类 | 国产综合无码一区二区色蜜蜜 | 久久久久久黄色片 | 欧美福利视频一区二区 | 免费的一级黄色片 | 青娱乐极品在线 | 日韩乱码人妻无码中文字幕 | 精人妻无码一区二区三区 | 自拍偷拍一区二区三区 | 污动漫网站 | 蜜桃导航-精品导航 | 亚洲精品国产av | 日韩免费网 | 成人性生活免费视频 | 亚洲熟妇无码久久精品 | a无一区二区三区 | 91宅男 | 在线观看免费高清在线观看 | 女同性做受全过程动图 | 日韩激情视频在线观看 | 一本黄色片 | 男人激情网 | 97中文在线 | av第一福利大全导航 | 日本三级大全 | 日本护士体内she精2xxx | 国产在线高清视频 | 在线免费日韩av | 超碰caopeng| 思思久久精品 | 国产成人在线电影 | 91美女在线视频 | 亚洲一级免费视频 | 日日操日日碰 | 日日碰狠狠添天天爽无码 | 欧美一区二区在线视频 | 动漫羞羞 | 久久99精品国产91久久来源 | 校霸被c到爽夹震蛋上课高潮 | 熟女俱乐部一区二区 | 国产91综合一区在线观看 | 国产成人精品网站 | 香蕉伊人 | 蜜桃视频在线观看一区二区 | 都市激情自拍 | 成人区精品一区二区婷婷 | 免费看女生裸体视频 | 欧美手机在线视频 | 123超碰| 中文字幕精品三级久久久 | 午夜无遮挡| 中文字幕视频网站 | 日韩一级不卡 | 中文字幕在线观看免费视频 | 成人国产免费视频 | 精品久久成人 | 欧美日韩一二区 | 肥熟女一区二区三肥熟女 | 狠狠躁天天躁夜夜躁婷婷 | 久久99精品久久久久久园产越南 | 男男车车的车车网站w98免费 | 国产精品久久久久精 | 国产又大又粗又爽 | 亚洲精品a区| 国产人与禽zoz0性伦 | 成人网在线观看 | 欧美888| 天堂精品一区 | 理论片亚洲 | 丁香花完整视频在线观看 | 欧美69式性猛交 | 亚洲欧美日韩久久精品 | 四虎色网| 欧美日本黄色 | 特大黑人巨人吊xxxx | 美国式禁忌1980| 黄色片美女 | 午夜精品久久久久久久久久蜜桃 | 三级黄网| 一区二区在线免费 | 亚洲av毛片成人精品 | 国产无遮挡a片又黄又爽 | 日韩女优一区二区 | 人妻少妇无码精品视频区 |