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#;