Programming/Oracle

오라클 DB 세션 KILL 하는 방법

초록깨비 2021. 4. 27. 09:59
728x90

[ 오라클 DB 세션 KILL 시키는 방법 ] 

 

   alter system kill session SID,SERIAL#;

 

 

  . SID, SERIAL# 은 아래를 참조하여 찾는다

    - system계정으로 로그인 

      

      Select *
       From v$locked_object  ;    -- ⓐ
  
     Select *
      From v$session
     Where sid = '94'  ;             -- ⓐ 에서 조회 한 sid를 조건에 넣어 serial#를 찾는다         

 

 

 => 세션중 해당 TABLE에 대한 LOCK은 해제가 안되어서

      재작업이 안되는 경우가 있을 경우 다음과 같이 조치 한다

 

1) alter 명령으로 KILL 됐는지 확인

 

    select sid, serial#, status, server
     from v$session
    where status = KILLED;

 

 

2) 해당 session의 sid가 lock이 있는지 확인


    select *                   --sid 확인
     from v$lock
    where type = 'TX'
       and lmode > 0;

 

 

 

3) lock이 있을 경우 OS의 process id 확인 

 

   select p.spid "OS Thread", s.osuser, s.program, s.sid, s.SERIAL#
    from v$process p, v$session s
  where  p.addr = s.paddr
     and  s.sid = :SID   ;

 

 

4) 해당 OS의 process id 확인 후 process종료

 

    kill -9 p.spid(os의 프로세스 id)   

 

728x90