鎖表會導致關於此表的任何編輯情況都受到限制,對相關應用影響十分嚴重。
所以有時排查故障會對數據的表空間和鎖表情況做檢查:
一、檢查是否存在鎖
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#;