오라클 테이블 락 확인 및 해제 lock(9i)

오라클 테이블 락 확인 및 해제 lock(9i)

 

— 테이블에 lock을 발생시킨 user를 찾을 경우가 많습니다.
— 특히 OPS(RAC on 9i) system에서는 더더욱 그런 경우가 많구요.
— 제가 관리하던 시스템에서 자주 썼던 sql입니다.
— 기타 많은 유사한 sql로 있습니다만 한번 써 보시길 바랍니다.

/* 락발생 사용자와 sql, object 조회 */

select distinct x.session_id,  a.serial#,d.object_name,a.machine,a.terminal,a.program,b.address,b.piece, b.sql_text
from v$locked_object x, v$session a, v$sqltext b, dba_objects d
where x.session_id = a.sid
and x.object_id = d.object_id
and a.sql_address = b.address
–and a.terminal = ”
order by b.address,b.piece;

/* 락 발생 사용자확인 */

select distinct x.session_id,  a.serial#,d.object_name,a.machine,a.terminal,a.program, a.logon_time
–select  ‘alter system kill session ”’ || a.sid || ‘,’ || a.serial# || ”’;’
from gv$locked_object x, gv$session a, dba_objects d
where x.session_id = a.sid
and x.object_id = d.object_id
order by logon_time;
;

/* 현재 접속자의 sql 분석 */

select distinct a.sid,a.serial#,a.machine,a.terminal,a.program,b.address,b.piece, b.sql_text
from v$session a, v$sqltext b
where a.sql_address = b.address
order by a.sid, a.serial#,b.address,b.piece;

/* 접속 사용자 제거 */

–alter system kill session ‘session_id,serial#’;
alter system kill session ‘51,1111;

Author: yyjksw