è  Total Session & Active Session 조회

select INST_ID,to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') "Time",

count(*) "Total Sessions",

count(decode(status, 'ACTIVE',1) ) "Active Sessions"

from gv$session

group by inst_id;

 

è  Kill Session 확인.

-       STATUS INACTIVE SESSION을 조회 하는 쿼리.

SELECT sid,serial#,status,last_call_et,to_char(logon_time,'YYYY-MM-DD hh24:mi:ss') LOGON_TIME

FROM V$SESSION

WHERE status='INACTIVE'

AND username not in ('SYS'') -- 제외 할 USERNAME 입력

AND last_call_et > 86400 – INACTIVE 상태로 된 시간 (단위 : , ex : 86400 = 하루)

 

n  LOGON_TIME : 로그온 시간(CONNECTION 맺어진 시간)

n  LAST_CALL_ET : SessionACTIVE or INACTIVE 상태가 된 시간 (단위 : )

 

è  KILL Session 쿼리 추출

-       위의 쿼리를 수행 후 조회 된 Session 들을 KILL 해야 될 때 수행하는 쿼리

select 'ALTER SYSTEM KILL SESSION '''||sid||','||serial#||''''||' immediate ;' smt

from v$session

where status ='INACTIVE'

and username not in ('SYS') – 제외 할 USERNAME 입력

and last_call_et > 86400; -- INACTIVE 상태로 된 시간 (단위: , ex : 86400 = 하루)

 

 

     주의점: Session Kill 하게 되면 SMON에 의해서 Clean-Up 되는 시간이 필요함.

SQL에서 Session Kill 후에 OS 에서 kill -9 명령어를 또다시 날리게 되면 SMON

Kill 하게 되므로 DBShutdown .

 

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 사이버몰의 이용약관 바로가기
  1. Favicon of https://otsteam.tistory.com BlogIcon otsteam 박용석 2015.03.23 17:25 신고

    System Admin 들은 Unix OS로 치면 좀비 프로세스 defunct 난 프로세스...를 정리하는데.

    이와 비슷하게

    오라클 DB 에서는 inactive 상태로 하루 이상 지난 세션들을 정리하는 쿼리입니다.

    last_call_et 컬럼의 뜻은 마지막으로 세션에서 CALL 한 후 흘러간 초를 나타냅니다.

    즉 세션 정보가 inactive와 active를 반복하다가 inactive 된 시점에서 얼마나 지낫는지 확인 하는 뜻 입니다.

+ Recent posts