본문 바로가기

IT관련

오라클 에러 정보 (ORA-0) - IDLE_TIME에 의해 발생하는

 

ORA-0 에러가 AlertLog에 보인다면, 이건 사용자 profile에 IDLE_TIME 이 세팅되어 있는 것입니다.

이 IDLE_TIME 이 지나도록 세션이 아무일도 안하고 Inactive 상태로 있으면, PMON 에 의해서 강제로 Kill 됩니다.

이때 AlertLog 에 ORA-0 에러를 기록하는 것이죠.

 

AlertLog에 나타나는 에러는 아래와 같은 형태입니다.

 

KILL SESSION for sid=(382, 30780):
 Reason = profile limit idle_time
 Mode = KILL SOFT -/-/-
 Requestor = PMON (orapid = 2, ospid = 2961, inst = 1)
 Owner = Process: USER (orapid = 164, ospid = 26147)
 Result = ORA-0

 

IDLE_TIME 은 Profile 에 세팅되어 있는데, 아래 SQL로 확인이 가능합니다.

 

SQL>
select PROFILE
     , RESOURCE_NAME
     , RESOURCE_TYPE
     , LIMIT
     , COMMON
from dba_profiles
where profile = 'DEFAULT'
order by 1,2;

 

PROFILE              RESOURCE_NAME                    RESOURCE LIMIT                          COM
-------------------- -------------------------------- -------- ------------------------------ ---
DEFAULT              COMPOSITE_LIMIT                  KERNEL   UNLIMITED                      NO
DEFAULT              CONNECT_TIME                     KERNEL   UNLIMITED                      NO
DEFAULT              CPU_PER_CALL                     KERNEL   UNLIMITED                      NO
DEFAULT              CPU_PER_SESSION                  KERNEL   UNLIMITED                      NO
DEFAULT              FAILED_LOGIN_ATTEMPTS            PASSWORD 10                             NO
DEFAULT              IDLE_TIME                        KERNEL   15                             NO

 

15분으로 세팅되어 있네요.

이걸 바꾸려면 아래처럼..

SQL> alter profile default limit idle_time UNLIMITED;

 

다시 조회해 보면, 바뀐 것을 확인할 수 있습니다.

 

PROFILE              RESOURCE_NAME                    RESOURCE LIMIT                          COM
-------------------- -------------------------------- -------- ------------------------------ ---
DEFAULT              COMPOSITE_LIMIT                  KERNEL   UNLIMITED                      NO
DEFAULT              CONNECT_TIME                     KERNEL   UNLIMITED                      NO
DEFAULT              CPU_PER_CALL                     KERNEL   UNLIMITED                      NO
DEFAULT              CPU_PER_SESSION                  KERNEL   UNLIMITED                      NO
DEFAULT              FAILED_LOGIN_ATTEMPTS            PASSWORD 10                             NO
DEFAULT              IDLE_TIME                        KERNEL   UNLIMITED                      NO

 

DEFAULT 프로파일을 사용하고 있다고 가정한 경우입니다. (대부분 건들지 않았으면 DEFAULT ... )

만약 특정 사용자가 다른 프로파일을 쓰고 있다면, 그걸 바꿔줘야 겠죠~~