본문 바로가기

IT관련

오라클 Alertlog 를 DB내에서 SQL Query로 조회하는 방법

Oracle Alertlog 파일은 DBA가 주기적으로 모니터링해야 하는 매우 중요한 로그파일이죠~

그래서 보통 큰 회사에서는 SMS(Server Monitoring System) 같은 걸로 로그파일을 지속적으로 모니터링합니다.

SMS 같은게 없는 데서는 DBA가 가끔씩 파일을 열어서 눈깔 튀어나오게 쳐다봐야하는 어려움이 있습니다.

 

그런데, Oracle 11g DBMS 부터는 DB에서 바로 조회가 가능합니다.

바로 x$dbgalertext 라는 딕셔너리 뷰가 생겼기 때문입니다.

 

 

sys 유저에 있습니다.

컬럼들이 엄청 많은데, 이중에서 주목할 컬럼들은 originating_timestamp(로그발생시간) 과 message_text(로그메시지) 정도입니다.

RAC DB인 경우는 inst_id (인스턴스 ID) 도 알면 더 좋겠네요. 

 

 

아래는 현재시점부터 5시간 이내의 Alert Log 를 조회하는 SQL 입니다.

 


SQL> 
select originating_timestamp, message_text
from X$DBGALERTEXT
where originating_timestamp >= sysdate - 5/24;
    -- 현재부터 5시간이내의 Alert Log 를 조회

 

 

아래는 최근 한달간(31일) 발생한 Alert Log 중에서 "ORA-" 와 "Fatal" 이라는 문구가 들어있는 메시지만 조회하는 SQL 입니다.

 


SQL> 
select originating_timestamp, message_text 
from X$DBGALERTEXT
where originating_timestamp > sysdate - 31
  and ( message_text like '%ORA-%' 
        or 
        message_text like '%Fatal%'
      );
   -- 최근 한달간 발생한 ORA- 에러 및 Fatal 메시지 확인

 

이 x$dbgalertext 뷰가 있어서, 더이상 alertSID.log 파일을 눈깔 빠지게 구다보지 않아도 되겠네요.

 

alertlog 분석해주는 프로그램도 있으니 참고 바랍니다.

 

▶ 오라클 Alertlog 파일 분석 프로그램 다운로드

 

v_$diag_alert_ext 딕셔너리 뷰를 조회해도 됩니다. 

x$dbgalertext 는 시스템테이블이고, v_$diag_alert_ext 는 x$dbgalertext 에 대한 뷰인데, 같은 놈이라고 할 수 있습니다.

v_$diag_alert_ext 를 DVDesktop 에서 차트(Chart)로 분석하는 실습예제도 아래에서 확인할 수 있습니다.

 

▶ DVDesktop 에서 Oracle Database 접속하는 방법(alertlog 분석)