oralce笔记---查看被锁定表及解锁

来源:互联网 发布:pc自动算账软件 编辑:程序博客网 时间:2024/06/05 10:15

--如果出现了锁的问题, 某个DML操作可能等待很久没有反应。

--当你采用的是直接连接数据库的方式,也不要用OS系统命令 $kill process_num 或者 $kill -9 process_num来终止用户连接,因为一个用户进程可能产生一个以上的锁, 杀OS进程并不能彻底清除锁的问题。
 
--以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句:

--查询被锁对象 OBJECT_ID
select b.owner,b.object_name, b.object_id,l.session_id,l.locked_mode
from v$locked_object l, dba_objects b
where b.object_id=l.object_id
--/
-- 用户表中对象名(表名)和OBJECT_ID 可在后加条件 and do.object_id in(上边查出的OBJECT_ID)
select do.object_id ,do.object_name from dba_objects  do where  do.OWNER='RTMS'   ;

 --查询被锁对象sid,serial#  可在后加条件 and do.object_id in(上边查出的OBJECT_ID)
select t2.username,t2.sid,t2.serial#,t2.logon_time ,t2.ACTION,t1.LOCKED_MODE
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time
--/
--通过sid,serial#杀掉被锁对象锁
alter system kill session 'sid,serial#';

 

原创粉丝点击