您好,登錄后才能下訂單哦!
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid
order by t2.logon_time;
--查死鎖--
select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode
from v$locked_object lo,dba_objects ao,v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid
--查死鎖--
Select decode(request, 0, 'holder:', 'waiter:') || sid sid,id1,id2,lmode,request,type,ctime/60 鎖定時(shí)間
from v$lock where (id1, id2, type) in
(select id1, id2, type from v$lock where request > 0) order by id1, request;
--根據(jù)sid獲取進(jìn)程詳情--
SELECT a.username,a.machine,a.program,b.spid,a.sid,a.serial#,a.status,c.piece,c.sql_text
FROM v$session a, v$process b, v$sqltext c
WHERE a.sid = '749'
AND b.addr = a.paddr
AND a.sql_address = c.address(+)
ORDER BY c.piece;
-- add 2012-09-14
-- 數(shù)據(jù)表死鎖的解決方法(轉(zhuǎn))
死鎖是數(shù)據(jù)庫(kù)經(jīng)常發(fā)生的問題,數(shù)據(jù)庫(kù)一般不會(huì)無(wú)緣無(wú)故產(chǎn)生死鎖,死鎖通常都是由于我們應(yīng)用程序的設(shè)計(jì)本身造成的。產(chǎn)生死鎖時(shí),如何解決呢,下面是常規(guī)的解決辦法:
1)執(zhí)行下面SQL,先查看哪些表被鎖住了:
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id;
2)查處引起死鎖的會(huì)話
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
這里會(huì)列出SID
3) 查出SID和SERIAL#:
查V$SESSION視圖:
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='剛才查到的SID';
這一步將得到PADDR
4)查V$PROCESS視圖:
SELECT SPID FROM V$PROCESS WHERE ADDR='剛才查到的PADDR';
這一步得到SPID
5)殺死進(jìn)程
(1)在數(shù)據(jù)庫(kù)中,殺掉ORACLE進(jìn)程:
ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';
(2)如果在ORACLE中不能殺死進(jìn)程,我們只能到操作系統(tǒng)中,使用操作系統(tǒng)命令殺死進(jìn)程
KILL -9 “剛才查出的SPID”
在WINDOWS平臺(tái),可以是偶那個(gè)orakill。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。