티스토리 뷰

Oracle/Oracle-Admin

오라클의 세션 킬

니플하임_ 2007.01.30 13:30

1. 프롤로그


2. Session 확인
Kill 하고자 하는 세션ID(SID) 가 확인이 되어야 한다.
이는 v$sql과 v$session을 조인함으로서 현재 수행중인 sql문을 확인할수 있다.
(v$sql의 address와 v$session의 sql_address만 조인하면 간단히 확인가능하다)
해당 SQL에 대한 SID를 찾아 v$session의 status를 확인한다.
status가 killed로 남아있다면 정상적으로 session kill이 되지 않은 것이다.

v$process 는 프로세스를 모니터링하는 다이나믹뷰로서
v$session 과 paddr로 조인된다.(v$process의 addr필드와 v$session의 paddr필드로 조인)
그러면 프로세스ID(PSID)가 직접 확인이 가능해지며,

sh>ps -ef | grep :PSID값

으로서 세션에 해당하는 프로세스를 찾을 수 있다.
해당 프로세스를

sh> kill -9 :PSID값

함으로서 해당 세션에 대한 세션킬을 클리어하게 할 수 있다.
이렇게 되면 해당 테이블에 대한 parallel update는 모두 빠르게 release되고,
정상적으로 다음 트랜젝션을 실행할 수 있게되는 것이다.
댓글
댓글쓰기 폼