본문 바로가기
데이터베이스/오라클

오라클(oracle) 락(lock) 확인 및 제거(kill)

by cbwstar 2021. 9. 6.
728x90
반응형

-- 락걸린 테이블 확인

 

SELECT  do.object_name,  do.owner,  do.object_type,  do.owner,

  vo.xidusn,  vo.session_id,  vo.locked_mode

FROM

  v$locked_object vo ,  dba_objects do

WHERE   vo.object_id = do.object_id ;

 

 

--해당테이블이 락에 걸렸는지.. 

 

SELECT   A.SID,  A.SERIAL#,  B.TYPE,  C.OBJECT_NAME

FROM   V$SESSION A,  V$LOCK B,  DBA_OBJECTS C

WHERE   A.SID=B.SID AND  B.ID1=C.OBJECT_ID

   AND  B.TYPE='TM'  AND  C.OBJECT_NAME IN ('테이블명');

   

 

 /* 락발생 사용자와 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 

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 ,  '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; 

 

 

/* 접속 사용자 제거 */

 

--alter system kill session 'session_id,serial#';

alter system kill session '26,6044';

 

 

/* 현재 접속자의 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;

728x90
반응형

'데이터베이스 > 오라클' 카테고리의 다른 글

오라클 암호변경  (0) 2021.09.06
오라클 통계생성  (0) 2021.09.06
오라클 버전확인  (0) 2021.09.06
오라클 최대접속 가능 수 변경(세션수) 변경  (1) 2021.09.03
DB링크 생성 및 조회  (0) 2021.09.03

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading