7×24小时服务热线 171 9866 1244
栏目列表
推荐内容

oracle杀死死锁的方法

时间:2013-07-17 14:20来源:中国IT实验室 作者:佚名 点击:
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
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';
  然后再执行第一个语句看看你的死锁被杀死了没有?
  肯定会成功的!

(责任编辑:admin)
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
关闭
171 9866 1244 工作日:9:00-18:00
点击这里给我发消息

邮箱:
abit@design.com