首页 > 数据库技术 > 详细

解除Oracle被锁的表

时间:2018-02-08 15:25:09      阅读:252      评论:0      收藏:0      [点我收藏+]
1.开一个会话session1

SQL>select sid from v$mystat where rownum=1;

SID

158

SQL>create table t(x int primary key);

table created

SQL>insert into t values(1);

commit;

SQL>update t1 set    t=10 where  x=1;


2.再开一个会话

SQL>select sid from v$mystat where rowunm=1;

SID

157

SQL>update t1 se x=10 where x=1;

这个时候session2被session1锁住


3、执行以下语句查看是哪个进程和序列锁住了表

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

 

4、执行下面的语句,将改锁表的进程和序列杀掉了

alter system kill session '1020,38953' --(1020,就是执行第一步语句得到的sid字段值,38953就是serial#字段值)


参考博文:http://www.cnblogs.com/srsee/archive/2013/05/10/infi0510_2.html

解除Oracle被锁的表

原文:http://blog.51cto.com/linux10000/2070177

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!