主頁 > 知識庫 > 數據庫 > Oracle >

oracle殺死死鎖的方法

來源:中國IT實驗室 作者:佚名 發表于:2013-07-17 14:20  點擊:
oracle殺死死鎖的方法 執行以下語句,查看死鎖: 1 2 3 4 5 6 7 8 select /* + rule */ lpad( ,decode(l.xidusn,0,3,0))||l.oracle_username User_name, o.owner,o.object_name,o.object_type,s.sid,s.serial#,p.spid from v$locked_object l,dba_objects o,v
oracle殺死死鎖的方法  執行以下語句,查看死鎖:
1
2
3
4
5
6
7
8
select /* + rule */ lpad(' ',decode(l.xidusn,0,3,0))||l.oracle_username User_name,
  
o.owner,o.object_name,o.object_type,s.sid,s.serial#,p.spid
from v$locked_object l,dba_objects o,v$session s,v$process p 
where l.object_id=o.object_id
and l.session_id=s.sid
and s.paddr = p.addr 
order by o.object_id,xidusn DESC;
  (執行這個語句的目的,是為了找到你需要殺死的死鎖的SID和SERIAL#,注意:不建議你殺死別人的死鎖,有可能別人在你查詢死鎖的時刻,正在做某些操作而鎖表,剛好你正在查詢死鎖,其實你再查詢的時候別人的鎖已經解了。所以,無關自己的表的鎖,不建議去殺死。)
  好了,找到你需要操作的表名,然后找到對應的SID和SERIAL#
  替換下面語句的變量,然后執行,即可解鎖。
1
alter system kill session 'sid,serial#';
  假如,你找到的SID和SERIAL#分別是:35,1980
  那么你應該執行的殺死死鎖的語句如下:
1
alter system kill session '35,1980';
  然后再執行第一個語句看看你的死鎖被殺死了沒有?
  肯定會成功的!

    有幫助
    (0)
    0%
    沒幫助
    (0)
    0%
    31选7什么时候开奖