Oracle数据表中的死锁情况解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据表中的死锁情况解决方法相关的知识,希望对你有一定的参考价值。

  不知道干了啥,把数据表锁住了,没法update。

  百度了各种方法,总结如下。

  查看被锁住的表(两句都可以):

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

  select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao,v$session sess where    ao.object_id =   lo.object_id and lo.session_id = sess.sid;

  查看锁住表的用户和时间:

  select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;

  杀死死锁进程:

  alter system kill session ‘SID,serial#‘;

  在杀死进程的时候,出现错误。

技术分享

 原因是没有权限,登陆的时候要以dba的形式登陆。

技术分享

 再执行就可以了。

 

p.s Oracle装在虚拟机里的,不想弄,重启虚拟机就好了。

 

以上是关于Oracle数据表中的死锁情况解决方法的主要内容,如果未能解决你的问题,请参考以下文章

oracle中“ORA-00060: 等待资源时检测到死锁” 或存储过程编译卡死 解决方法

Oracle常见死锁发生的原因以及解决方法

sql死锁的原因及解决方法

数据库死锁处理方法

Oracle数据库死锁问题,高分悬赏答案

mysql 死锁:如何解决mysql死锁