OracleDB

[오라클 Admin] Oracle 빠르게 종료하는 방법 (Kill session) 본문

Oracle/Oracle Admin

[오라클 Admin] Oracle 빠르게 종료하는 방법 (Kill session)

마포김선생 2023. 12. 10. 11:21

Oracle 겁나 빠른 Shutdown 방법

 

작업 환경:
OS: Oracle Linux 8.9
DB: Oracle 19c

 

Oracle 종료를 빠르게 해보자 (Kill Session)

- 트랜젝션이 많은 DB 종료 시 40~50분 이상 시간이 소요되는 경우가 있다.

- 어플리케이션, 개발자 세션을 DB 종료 전에 내려줘야 하는데 대부분은 안 내려준다.

- Kill session을 이용하면 굉장히 빠른 속도로 내릴수있다.

- 기존 40~50분 정도 소요되는 작업 4~5분이면 가능하다. (약 10배 개선 가능)

- kill session은 "immediate" 옵션을 사용하면 깔끔하게 정리 가능

- DB 모니터링하다 발생하는 Wait event도 확인이 가능하니 실시간 분석할 때 사용하는 걸 추천합니다.

 

Oracle 종료 작업 절차

- 업무에 사용하는 모든 DB 계정 LOCK (SYS, SYSTEM 제외)

- Kill session 스크립트 수행 (V$SESSION에 추가로 접속되는 게 없는지 확인)

- 리스너 종료 (listener stop)

- DB (Shutdown immediate 수행)

 

 

Oracle Session 정보 분석 및 Kill session SQL

- KILL_SCRIPT 컬럼을 복사해서 Session kill 실행

- WHERE 조건에 DB계정명은 사용하는 DB계정에 맞춰서 변경해주세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
    USERNAME,
    PROGRAM,
    MACHINE,
    STATUS,
    EVENT
    SQL_ID,
    SID,
    SERIAL#,
    'ALTER SYSTEM KILL SESSION'''||SID||'.'||SERIAL#||' IMMEDIATE;''' AS "KILL_SCRIPT"
FROM V$SESSION
WHERE USERNAME IS NOT NULL
AND USERNAME = 'DB계정명'
ORDER BY 123;