欢迎来到网际学院,让您的头脑满载而归!

oracle死锁的解决方案

发布日期:2017-08-20 10:50:46 作者:管理员 阅读:1590

前一段时间由于oracle死锁问题导致了自己找了很长时间的错误,特意整理和总结了一下关于oracle死锁的解决办法供大家参考。

oracle死锁的解决方案

前一段时间由于oracle死锁问题导致了自己找了很长时间的错误,特意整理和总结了一下关于oracle死锁的解决办法供大家参考。

1数据库死锁原因分析

数据库的死锁是指有两个不同的会话,每个会话都拥有对方想要的资源,因为都想要拥有对方所拥有的资源而一直处于等待状态,这样就造成了死锁。例如有两个好朋友,一个人有玩具汽车但是没有电池,一个人有电池但是没有玩具汽车,两个人都想要玩玩具汽车,但是只能一个人玩,这两个人如果一方不妥协那么就永远无法继续下去,死锁大概就是这样的情况,oracle的死锁解决方案是一方回滚事务,另一方继续操作,意思是要有其中一方做出妥协。

2查看死锁相关表的信息

有两种查询的sql可以执行相关的查询工作:

2.1第一种查询语句

select se.sid, se.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session se

where ao.object_id = lo.object_id and lo.session_id = se.sid;

oracle死锁的解决方案

2.2第二种查询语句

select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;

oracle死锁的解决方案

3死锁的解决方案

如果上面sql查询出来的SID和serial#不为空,那么就说明有死锁数据,就要及时把session杀掉,下面是执行方法

alter system kill session 'SID,serial#';

oracle死锁的解决方案


Copyright oneie ©2014-2017 All Rights Reserved. 所有资料来源于互联网对相关版权责任概不负责。如发现侵犯了您的版权请与我们联系 QQ:86662817。 网际学院 版权所有 京ICP备14031243号-3
免责声明  商务合作及投稿请联系 QQ:86662817