首页 > 代码库 > 解决Oracle死锁问题,及产生的原因
解决Oracle死锁问题,及产生的原因
文章来源:http://www.cnblogs.com/leijh/archive/2012/10/15/2724165.html
最近高度程序时老是发现应该执行操作数据库的代码时发现执行不了,查了一下发现是数据库表锁死的原因,
,纠其原因,发现有些同事操作数据库时老是喜欢用select * from XXX for update
去操作数据库,有的操作了又没有COMMIT 所以导致数据库锁死,笔都建议大家不用,如果要用for update 之后请你记得提交
解决死锁的方法
第一步:找到数据库中被锁死的表
select object_id,session_id,locked_mode from v$locked_object;
第二步:找到表的SID SERIAL#
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
第三步:强杀锁死的表
alter system kill session ‘sid,serial#‘;
另:Oracle9I以后的版本有自动处理锁死表的能力!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。