oracle 表被锁解决方法

本文提供了一种检查Oracle数据库中被锁定的对象及其对应SQL语句和会话ID的方法,并展示了如何通过SQL查询来获取这些信息。此外还介绍了如何根据查询结果定位问题原因并提供了杀死特定会话的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、查看系统中那些对象被锁,以及对于的sql和session id

 select distinct * from (
select oracle_username || ' (' || s.osuser || ')' username,
       sql.SQL_TEXT,
       s.sid || ',' || s.serial# sess_id,
       owner || '.' || object_name object,
       object_type,
       decode(l.block, 0, 'Not Blocking', 1, 'Blocking', 2, 'Global') status,
       decode(v.locked_mode,
              0,
              'None',
              1,
              'Null',
              2,
              'Row-S (SS)',
              3,
              'Row-X (SX)',
              4,
              'Share',
              5,
              'S/Row-X (SSX)',
              6,
              'Exclusive',
              TO_CHAR(lmode)) mode_held
  from v$locked_object v, dba_objects d, v$lock l, v$session s,v$sqlarea sql
 where v.object_id = d.object_id
   and v.object_id = l.id1
   and v.session_id = s.sid
   and s.SQL_ID=sql.SQL_ID
    order by oracle_username, session_id
 )a;




or


select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id
and object_name ='HDM_COMPLETED_RATE';




OWNER                          OBJECT_NAME                                 SESSION_ID LOCKED_MODE
------------------------------ --------------------------------------      -------
WSSB                           SBDA_PSHPFTDT                               22           3
WSSB_RTREPOS                   WB_RT_SERVICE_QUEUE_TAB                     24           2
WSSB_RTREPOS                   WB_RT_NOTIFY_QUEUE_TAB                      29           2
WSSB_RTREPOS                   WB_RT_NOTIFY_QUEUE_TAB                      39           2
WSSB                           SBDA_PSDBDT                                 47           3
WSSB_RTREPOS                   WB_RT_AUDIT_DETAIL                          47           3

2、更具查询的sql排查原因,避免人为或程序原因再次出现该现象。

3、杀会话
alter system kill session 'sid,serial#';

 例如:alter system kill session '101,1508';


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值