解决Oracle锁表情况

在使用Oracle数据库更新数据的时候,有两种查询方式可以修改编辑数据:

select t.*,t.rowid from table t
select * from table for update

在使用第二种方式的时候如果卡住或意外退出,会导致这个表锁住,之后无法被修改。

使用以下方法处理锁表

--Oracle查询被锁对象数目
select count(1) from v$locked_object;
--查询被锁对象
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;
--查询被锁对象的连接
select t2.username,t2.sid,t2.serial,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;
--关闭被锁对象连接,
alter system kill session '2537.49542';

 

posted @ 2022-05-24 15:13  苏道羲  阅读(1948)  评论(0编辑  收藏  举报