六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 58|回复: 0

oracle数据库解决死锁

[复制链接]

升级  86%

9

主题

9

主题

9

主题

童生

Rank: 1

积分
43
 楼主| 发表于 2013-1-14 09:05:38 | 显示全部楼层 |阅读模式
项目期间,总有人用SELECT * FROM TABLE FOR UPDATE
锁住我们要操作的业务表,针对这种情况,可以按如下方式解决:
1. 查询出死锁对象
select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name  from v$process p,v$session a,v$locked_object b,all_objects   c   where  p.addr=a.paddr   and    a.process=b.process   and    c.object_id=b.object_id

2. 取死锁对象session基本信息
SELECT sid, serial#, username, osuser FROM v$session t where sid='1081【参数对应死锁对象中的session_id】'

3. 用kill命令厮杀
alter system kill session '654【参数1:session基本信息对应的sid字段】,2000【参数2:session基本信息对应的serial#字段】'

注:数据库为ORACLE10I,仅针对PLSQLDEV客户端死锁
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表