01、oracle dba 解决锁表及查看原因

锁表会导致关于此表的任何编辑情况都受到限制,对相关应用影响十分严重。

所以有时排查故障会对数据的表空间和锁表情况做检查:

一、检查是否存在锁

select object_name,machine,s.sid,s.serial#,o.created,o.last_ddl_time
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
 
二、kill 锁
alter system kill session '548,3291' ; 其中548为锁id
 
三、查询锁原因及导致锁表账户
select l.session_id sid, 
       s.serial#, 
       l.locked_mode, 
       l.oracle_username, 
       s.user#, 
       l.os_user_name, 
       s.machine, 
       s.terminal, 
       a.sql_text, 
       a.action 
from v$sqlarea a, v$session s, v$locked_object l 
where l.session_id = s.sid 
and s.prev_sql_addr = a.address 
order by sid, s.serial#;
posted @ 2017-03-19 20:31  听雨说  阅读(4428)  评论(0编辑  收藏  举报