oracle 行级死锁_Oracle 表死锁 解决

问题:更新的Update语句一直在更新 卡在执行update语句的地方。

清除的方法:

Oracle表死锁解除

我是在plsql中处理

1.先查询

select * from v$locked_object v, dba_objects o

where v.object_id = o.object_id

2.记录死锁表的session_id

3.Tools →Sessions

找到session_id对应Sessions窗口里的Sid(可以排下序再找比较快),在Status 列 右键

Kill.

即成,注意要有操作权限的用户才行

oracle 数据表死锁解决方法 Oracle

查询死锁信息的语句:

selecta.owner,

a.object_name,

b.xidusn,

b.xidslot,

b.xidsqn,

b.session_id,

b.oracle_username,

b.os_user_name,

b.process,

b.locked_mode,

c.machine,

c.status,

c.server,

c.sid,

c.serial#,

c.programfromall_objects a, v$locked_object b, sys.gv_$session cwhere (a.object_id = b.object_id)and (b.process =c.process)order by 1, 2

---------------------------------------------

第一步:查看是否有死锁存在,查出有数据则代表有死锁:

select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name fromv$process p,v$session a,v$locked_object b,all_objects cwhere p.addr=a.paddrand a.process=b.processand c.object_id=b.object_id

第二步:查出死锁session的精确信息【sid 为前面语句的session_id】

SELECT sid, serial#, username, osuser FROM v$session where sid='第一步查询出来的session_id';

第三步:删除死锁【第一个参数为sid,第二个为serial#】

alter system kill session 'sid,serial#';

如果还不能解决,

select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr;

其中sid用死锁的sid替换。

1.exit

2.ps -ef|grep spid

---------------------------------------------

其中spid是这个进程的进程号,kill掉这个Oracle进程。

-------------------------------------------------分割线

查询死锁:

select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name fromv$process p,v$session a, v$locked_object b,all_objects cwhere p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id

SELECT sid, serial#, username, osuser FROM v$session where sid='1250';--根据上面的Session_id查询到 serial#alter system kill session '1250,29967'---1250就是上面的sid,29967就是上面的serial#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值