始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Oracle 查看对象持有锁的情况

发布时间:  2012/8/29 17:50:41

同事在测试库上对一个表加字段,提示 ORA-00054, 资源忙。 应该是表对象的锁没有释放。

用如下SQL 查看一下系统中相关对象上锁的情况:

1./* Formatted on 2011/9/26 14:45:46(QP5 v5.163.1008.3004) */ 
2.SELECT S.SIDSESSION_ID,  3.       S.USERNAME, 
4.       DECODE (LMODE, 
5.               0, ' None ',  6.               1, ' Null ',  7.               2, ' Row-S(SS) ',  8.               3, ' Row-X(SX) ',  9.               4, ' Share',  10.               5, 'S/Row-X (SSX) ',  11.               6, 'Exclusive ',  12.               TO_CHAR (LMODE)) 
13.          MODE_HELD, 
14.       DECODE (REQUEST, 
15.               0, ' None ',  16.               1, ' Null ',  17.               2, ' Row-S(SS) ',  18.               3, ' Row-X(SX) ',  19.               4, ' Share',  20.               5, 'S/Row-X (SSX) ',  21.               6, 'Exclusive ',  22.               TO_CHAR (REQUEST)) 
23.         MODE_REQUESTED, 
24.       O.OWNER|| ' . ' || O.OBJECT_NAME|| '  ( ' || O.OBJECT_TYPE|| ' ) ' as OBJECT_NAME,  25.       S.TYPELOCK_TYPE, 
26.       L.ID1LOCK_ID1, 
27.       L.ID2LOCK_ID2 
28.  FROMV$LOCK L, SYS.DBA_OBJECTSO,V$SESSION S 
29. WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID 

 

 

该SQL 显示所有对象上的锁,如果要查某个具体的对象,可以根据OBJECT_NAME 字段进行一下过滤,找到对应的SID 之后去查V$SESSION 视图。 

该视图会显示session 对应的信息,包括终端的信息,如果找到了终端,可以让它提交或者回滚一下就OK了。 我这里是测试环境,直接把session kill 掉了。然后修改表就ok了。

1.SQL>alter system kill session 'SID,SERIAL#' 
 


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线