Oracle锁处理、解锁方法

所属分类: 数据库 / oracle 阅读数: 478
收藏 0 赞 0 分享

1、查询锁情况

select sid,serial#,event,BLOCKING_SESSION from v$session where event like '%TX%';

2、根据SID查询具体信息(可忽略)

select sid,serial#,username,machine,blocking_session from v$session where sid=<SID>;

3、杀掉会话

#根据1和2中查到的SID和SERIAL# 定位会话,并杀掉

ALTER SYSTEM DISCONNECT SESSION '<SID>,<SERIAL>' IMMEDIATE;

ALTER SYSTEM KILL SESSION '<SID>,<SERIAL>';

 附件:

#查询阻塞脚本

col waiting_session for a20
col lock_type for a15
col mode_requested for a10
col mode_held for a10
col lock_id1 for a10
col lock_id2 for a10
set linesize 120
set pagesize 999
with dba_locks_cust as 
(SELECT  inst_id||'_'||sid session_id,
      DECODE (TYPE,
          'MR', 'Media Recovery',
          'RT', 'Redo Thread',
          'UN', 'User Name',
          'TX', 'Transaction',
          'TM', 'DML',
          'UL', 'PL/SQL User Lock',
          'DX', 'Distributed Xaction',
          'CF', 'Control File',
          'IS', 'Instance State',
          'FS', 'File Set',
          'IR', 'Instance Recovery',
          'ST', 'Disk Space Transaction',
          'TS', 'Temp Segment',
          'IV', 'Library Cache Invalidation',
          'LS', 'Log Start or Switch',
          'RW', 'Row Wait',
          'SQ', 'Sequence Number',
          'TE', 'Extend Table',
          'TT', 'Temp Table',
          TYPE)
        lock_type,
      DECODE (lmode,
          0, 'None',            /* Mon Lock equivalent */
          1, 'Null',                     /* N */
          2, 'Row-S (SS)',                  /* L */
          3, 'Row-X (SX)',                  /* R */
          4, 'Share',                    /* S */
          5, 'S/Row-X (SSX)',                /* C */
          6, 'Exclusive',                  /* X */
          TO_CHAR (lmode))
        mode_held,
      DECODE (request,
          0, 'None',            /* Mon Lock equivalent */
          1, 'Null',                     /* N */
          2, 'Row-S (SS)',                  /* L */
          3, 'Row-X (SX)',                  /* R */
          4, 'Share',                    /* S */
          5, 'S/Row-X (SSX)',                /* C */
          6, 'Exclusive',                  /* X */
          TO_CHAR (request))
        mode_requested,
      TO_CHAR (id1) lock_id1,
      TO_CHAR (id2) lock_id2,
      ctime last_convert,
      DECODE (block,
          0, 'Not Blocking', /* Not blocking any other processes */
          1, 'Blocking',   /* This lock blocks other processes */
          2, 'Global',  /* This lock is global, so we can't tell */
          TO_CHAR (block))
        blocking_others
   FROM gv$lock
),
lock_temp as
(select * from dba_locks_cust),
lock_holder as 
(
 select w.session_id waiting_session,
    h.session_id holding_session,
    w.lock_type,
    h.mode_held,
    w.mode_requested,
    w.lock_id1,
    w.lock_id2
 from lock_temp w, lock_temp h
 where h.blocking_others in ('Blocking','Global')
 and h.mode_held   != 'None'
 and h.mode_held   != 'Null'
 and w.mode_requested != 'None'
 and w.lock_type    = h.lock_type
 and w.lock_id1    = h.lock_id1
 and w.lock_id2    = h.lock_id2
),
lock_holders as
(select waiting_session,holding_session,lock_type,mode_held,
mode_requested,lock_id1,lock_id2
 from lock_holder
 union all
 select holding_session, null, 'None', null, null, null, null 
  from lock_holder
 minus
 select waiting_session, null, 'None', null, null, null, null
  from lock_holder 
 )
select lpad(' ',3*(level-1)) || waiting_session waiting_session,
    lock_type,
    mode_requested,
    mode_held,
    lock_id1,
    lock_id2
 from lock_holders
connect by prior waiting_session = holding_session
 start with holding_session is null;

以上所述是小编给大家介绍的Oracle锁处理、解锁方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

oracle创建表空间、授权、创建用户、导入dmp文件

这篇文章主要介绍了oracle创建表空间、授权、创建用户、导入dmp文件,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法

这篇文章主要为大家详细介绍了Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Oracle 11g 安装配置方法图文教程

这篇文章主要为大家详细介绍了Oracle 11g 下载与安装配置方法的图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Oracle批量查询、删除、更新使用BULK COLLECT提高效率

BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer用法笔记。对oracle批量查询 删除 更新使用bulk collect提高效果的相关知识感兴趣的朋友通过本文一起学习吧
收藏 0 赞 0 分享

Oracle存储过程、包、方法使用总结(推荐)

这篇文章主要介绍了Oracle存储过程、包、方法使用总结(推荐),需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle 11g简体中文版安装图文教程

这篇文章主要以图文结合的方式为大家介绍了Oracle 11g简体中文版的安装过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

oralce 计算时间差的实现

这篇文章主要介绍了oralce 计算时间差的实现的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle解析复杂json的方法实例详解

这篇文章主要介绍了Oracle解析复杂json的方法,本文给大家带来两种方法解决此问题,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle连接远程数据库的四种方法

这篇文章主要为大家详细介绍了Oracle连接远程数据库的四种设置方法和注意事项,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

win10 oracle11g安装报错问题集合 附解决方法

这篇文章主要为大家总结了win10 oracle11g安装报错问题的产生原因,和oracle安装报错的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多