ITPub博客

首页 > 数据库 > Oracle > 查看锁的信息和alter system kill session的用法(小例子)

查看锁的信息和alter system kill session的用法(小例子)

原创 Oracle 作者:oracle_zsx 时间:2013-08-26 10:24:20 0 删除 编辑
当我发现了我做一个DML操作的时候被锁住了,我解决的办法:
 
步骤一、
SQL> col sess format a15
SQL> set linesize 200
SQL> select inst_id, decode(request,0,'Holder: ', '   Waiter: ')||sid sess, id1, id2, lmode,
     request, type ,block 
     from gv$lock  
     where (id1, id2, type) in (select id1, id2, type from gv$lock where request>0)  
     order by id1, request;
   INST_ID SESS                   ID1        ID2      LMODE    REQUEST TY      BLOCK
---------- --------------- ---------- ---------- ---------- ---------- -- ----------
         1 Holder: 127         655395        245          6          0 TX          1
         1    Waiter: 152      655395        245          0          6 TX          0
注意:
可以看出,我的会话id是152,我被锁住了,那么锁住我的那个会话是127.
 
步骤二、
如果你知道127这个会话是谁,那么你可以先通知他让他提交自己的事务。
 
步骤三、
如果你不知道127这个会话是谁,那么你可以联系管理员,让管理员处理。
 
步骤四、
如果你是管理员,而你自己又联系不到127这个会话,那么你可以杀掉他的进程:
首先查询他的会话信息:
SQL> select sid,serial# from v$session where sid=127;
       SID    SERIAL#
---------- ----------
       127       4407
然后杀掉他的进程:
SQL> alter system kill session '127,4407';

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29107230/viewspace-769244/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-08-22

  • 博文量
    25
  • 访问量
    134534