项目期间,总有人用
锁住我们要操作的业务表,针对这种情况,可以按如下方式解决:
1. 查询出死锁对象
2. 取死锁对象session基本信息
3. 用kill命令厮杀
[b]注:数据库为ORACLE10I,仅针对PLSQLDEV客户端死锁[/b]
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#字段】'[b]注:数据库为ORACLE10I,仅针对PLSQLDEV客户端死锁[/b]
本文详细介绍了如何通过查询死锁对象、获取其会话基本信息并使用kill命令解决Oracle数据库中由PL/SQL Developer客户端引发的死锁问题。包括使用SQL查询获取死锁对象和会话信息,以及执行kill命令释放锁定。
249

被折叠的 条评论
为什么被折叠?



