V$SESSION, V$LOCKED_OBJECT
락으로 인하여 세션을 강제로 종료하는 경우가 발생할 수 있습니다.
현재 세션 정보와 락 오브젝트를 확인할 수 있는 뷰입니다.
세션 확인
SELECT * FROM V$SESSION;
락 오브젝트 확인
SELECT * FROM V$LOCKED_OBJECT;
락 오브젝트 기준 확인(라이트 아우터 조인)
SELECT *
FROM V$SESSION
RIGHT JOIN
V$LOCKED_OBJECT
ON V$LOCKED_OBJECT.SESSION_ID = V$SESSION.SID;
KILL SESSION
Kill Session syntax : 구문
ALTER SYSTEM KILL SESSION 'SID, SERIAL#' [IMMEDIATE]
immediate는 즉시 종료하라는 명령을 마킹하는 기능입니다.
SID와 SERIAL# 은 V$SESSION 뷰에서 확인할 수 있습니다.
ALTER SYSTEM KILL SESSION 'SID, SERIAL#' IMMEDIATE;
Kill Session 예시
(세션아이디 1, 시리얼 1을 강제 종료)
ALTER SYSTEM KILL SESSION '1,1' IMMEDIATE;
KILL ALL SESSION
모든 세션 강제 종료 구문을 추출해봅니다.
SELECT 'ALTER SYSTEM KILL SESSION ''' || SID || ',' || SERIAL# || ''' IMMEDIATE;'
FROM V$SESSION;
DISCONNECT SESSION
Kill Session과 비슷한 기능입니다.
해당 명령은 Dedicated Server Process를 강제 종료하며 POST_TRANSACTION, IMMEDIATE 키워드 둘 중 하나를 선택합니다. (커밋하고 디스커넥트 할 건지, 즉시 롤백하고 디스커넥트 할 건지 선택)
ALTER SYSTEM DISCONNECT SESSION 'SID, #SERIAL' POST_TRANSACTION;
ALTER SYSTEM DISCONNECT SESSION 'SID, #SERIAL' IMMEDIATE;