728x90

DB 를 운영하다보면 LOCK 이 걸리거나 ,, INACTIVE 에서 세션이 종료되지 않아 

process count max 를 찍어 DB 접속이 안될때가 있다..

 

필자가  OS , DB 에서 각각 날리는 명령어 , 쿼리를 공유 하고자 한다

 

1. OS 에서 session kill 할 때 ( Linux )

LOCAL=NO 를 죽여도 되고 LOCAL=YES 를 죽여도 된다.. 본인의 환경에 따라 수정하여 사용하기 바랍니다

kill -9 `ps -ef | grep $USER | grep oracle |grep 'LOCAL=NO' | awk '{print $2}'`

 

2. DB (sqlplus , 각종 DB 툴) 에서 session kill 할 때

 

회색 처리되어 주석처럼 보이긴 하지만.. 다 적어주어야 한다

 

맨 밑줄 AND STATUS 는 상황에 따라 넣어도 되고 안넣어도 된다.

 

여기까지 찾아 오신 분들이라면 상황에 맞게 수정 하실 줄 알것이다....

죽이면 안되는 세션이 있는것도 아실거라 믿는다.

 

※WHERE 절 수정해서 사용하기※

SELECT 'alter system kill session ''' || SID || ',' || SERIAL# || ''' immediate ;'
FROM v$session
WHERE USERNAME = '유저네임' AND STATUS = 'INACTIVE';

아무튼 저 쿼리를 날리면 조건에 맞는 session들이

 

alter system kill session 'SID,SERIAL#' immediate ; 

이런 형식으로 나온다.

 

dba 권한 가진 계정으로 날려주면 된다.

728x90

'IT > ORACLE' 카테고리의 다른 글

[Oracle] DB Import (impdp)  (2) 2023.03.20
[Oracle] DB Export  (0) 2023.03.10

+ Recent posts