CFeng_feng 发表于 2013-1-14 09:05:38

oracle数据库解决死锁

项目期间,总有人用SELECT * FROM TABLE FOR UPDATE
锁住我们要操作的业务表,针对这种情况,可以按如下方式解决:
1. 查询出死锁对象
select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_namefrom v$process p,v$session a,v$locked_object b,all_objects   c   wherep.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客户端死锁
页: [1]
查看完整版本: oracle数据库解决死锁