关于数据库中表被锁定时如何操作表

本文提供了一种解决Oracle数据库中表被锁定的问题的方法。通过查询锁定表的信息,并使用特定的SQL命令来解锁这些表,从而恢复正常的数据操作流程。

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

在对表进行操作时无法完成出现了‘假死’   状态,由于自己也不是很懂,于是查看了资料,总结如下:

--首先查询被锁表

  select object_name, machine, s.sid, s.SERIAL#
     from gv$locked_object l, dba_objects o, gv$session s
         where l.OBJECT_ID = o.OBJECT_ID
             and l.SESSION_ID = s.sid;

---通过上面的查询语句会查询到被锁的表,然后进行解锁

   --释放session sql

   --alter system kill session'sid,serial#';

例如:

     alter system kill session'888,5096';

-------------------------------------------------

--查询锁表
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; 
--select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;


--解锁语句
select distinct 'alter system kill session '||''''||sess.sid||','||sess.serial#||''''||';'
    from v$locked_object lo, 
    dba_objects ao, 
    v$session sess 
where ao.object_id = lo.object_id and lo.session_id = sess.sid; 




alter system kill session '2002,7867';
alter system kill session '1923,52030';
alter system kill session '2033,52721';
alter system kill session '1148,49763';
alter system kill session '858,3300';
alter system kill session '2316,22953';
alter system kill session '1259,46393';




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值