Oracle的表锁死以及解锁

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle的表锁死以及解锁相关的知识,希望对你有一定的参考价值。

Oracle的表锁死以及解锁

oracle 查看锁死的表,锁死的进程。

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;

--解锁

--用dba权限的用户登陆数据库。

1、select * from v$locked_object 查出被锁定的对象,其中object_id是对象的ID,session_id是被锁定对象有session ID;

2、select object_name, object_type from dba_objects where object_id = 刚才查出来的object_id;(根据v$locked_object里的object_id提出来的)
这样来查被锁定这个对象的名字,如果能确定是哪个TABLE被锁并且要解锁,则再执行
3、select sid, serial#, machine, program from v$session where sid =第1步中查出来的session_id;(是根据v$locked_object对应锁定记录的session_id找出来的) 然后
4、alter system kill session ‘sid,serial#‘;用来杀死这个会话;
以上几个步骤即能解决对象被锁定问题。


另外附上锁定一个表的语句:
LOCK TABLE tablename IN EXCLUSIVE MODE;将锁定整个表

  

以上是关于Oracle的表锁死以及解锁的主要内容,如果未能解决你的问题,请参考以下文章

查看oracle是不是锁表

数据库查询锁表以及解锁表的sql

sql 解决表锁死

Oracle 锁表查询 和解锁表

解锁用户及数据库表,锁死进程

oracle查询锁表与解锁情况提供解决方案