è 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 : Session이 ACTIVE 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 하게 되므로 DB가 Shutdown 됨.
'DB - ORACLE > Oracle Command' 카테고리의 다른 글
ADRCI를 이용해 ORA 메시지 추출하기 (0) | 2015.06.03 |
---|---|
Rawdevice 에서 Filesystem 으로 데이터파일 변환하는 방법 (0) | 2015.04.21 |
Commit 안된 정보 조회 쿼리 (0) | 2015.02.02 |
RAC IP & Device 변경 (0) | 2015.01.21 |
raw device를 타 서버 복사 방법 (0) | 2015.01.20 |