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装在虚拟机里的,不想弄,重启虚拟机就好了。

 

posted @ 2017-08-24 17:06  码码怡  阅读(500)  评论(0编辑  收藏  举报