새소식

Oracle Database

[ORACLE] KILL SESSION

  • -
반응형

오늘은 Oracle Session Kill에대해 글을 써보도록하겠습니다.

Database를 운영하다보면 특정 Session 을 Kill해야 하는일이 생기게된다. 자주 발생하는 예로는 Lock이 발생하였을때 Lock 을 유발시킨 Session을 Kill하게 됩니다.

 

Session 확인

USERNAME이 LEE인 USER의 SID,SERIAL#을 확인하였다.

SQL> select username,sid,serial#,status from v$session where username='LEE';

USERNAME			      SID    SERIAL# STATUS
------------------------------ ---------- ---------- --------
LEE				      191	   5 INACTIVE

 

Session KILL ( ALTER SYSTEM KILL )

alter system kill session 명령어를 이용하여 LEE USER를 KILL하였다.

SQL> alter system kill session '191,5' immediate;

System altered.

SQL> select username,sid,serial#,status from v$session where username='LEE';

no rows selected


* RAC인경우에는 아래 명령어로 다른 INSTANCE의 SESSION도 KILL 가능하다.
alter system kill session '191,5,@instid' immediate;

SQL> alter system kill session '191,5,@2' immediate;

 

Session KILL ( kill -9 )

간혹 alter sysetm으로 session을 kill하였으나 해당 Session이 죽지않고 killed 상태로 남아있는 경우가 있다. 이때는 Session의 PID를 확인하여 OS에서 KIll을 해주어야한다.

 

SQL> select username,sid,serial#,status from v$session where username='LEE';

USERNAME			      SID    SERIAL# STATUS
------------------------------ ---------- ---------- --------
LEE				      191	   5 KILLED

SQL> select s.username,s.sid,s.serial#,p.spid from v$process p, v$session s where  p.ADDR=s.paddr and s.username='LEE';

USERNAME			      SID    SERIAL# SPID
------------------------------ ---------- ---------- ------------------------
LEE				      191	   5 25021



[orcl11]ora11@hy:~ ps -ef | grep 25021
ora11    25021 19166  0 17:05 ?        00:00:00 oracleorcl11 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))


[orcl11]ora11@hy:~ kill -9 25021

[orcl11]ora11@hy:~ sqlplus / as sysdba

SQL> select s.username,s.sid,s.serial#,p.spid from v$process p, v$session s where  p.ADDR=s.paddr and s.username='LEE';

no rows selected

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.