프린트 하기

내맘대로긍정이 알려주는

Oracle 23ai 신기능
무료 세미나 발표자료

다운로드 trending_flat

OS환경 : Oracle Linux6.8(64bit)


DB 환경 : Oracle Database 11.2.0.4


쿼리 : OS 접속 권한 없이 oracle 접속해서 alert log 확인

v$diag_alert_ext 뷰를 이용하면 됨

원래 오라클은 alert로그나 listener로그를 파일에 기록하여 관리함

하지만 11gR2 부터는 v$diag_alert_ext 뷰에서도 위 로그들을 확인할 수 있음

v$diag_alert_ext 뷰는 현재 컨테이너 (PDB)의 자동 진단 저장소 (ADR)에있는 XML 기반 alert log 의 내용을 보여줌

위 뷰 뿐만아니라, x$dbgalertext 테이블에서도 확인할 수 있음

 

MESSAGE_TEXT 컬럼에 해당 로그들이 담김


V$뷰와 X$뷰의 차이

<V$_XXXX>

현재 Database의 상태에 관한 정보로 주로 DBA에게만 액세스가 허용되어 있음

주로 DBA의 모니터링 작업용 정보를 제공하며, X$ 테이블을 베이스로 하는 뷰

<X$_XXXX>

X$ 뷰는 V$ 뷰가 보여주지 않는 정보를 보여줌

X$ 테이블은 오라클의 메모리정보를 볼 수있는 SQL 인터페이스 뷰들로 Oracle 데이터베이스의 가장 숨겨진 영역 중 하나임


기본적으로 alert로그나 listener로그를 모두 조회 가능

(Index 없이 Full Scan으로 조회하기 때문에 성능이 좋지 않음

OS 에서 볼수 있는 경우 OS에서 alert log를 보는걸 권장함)


v$diag_alert_ext 뷰 조회

1
2
SQL> select ORIGINATING_TIMESTAMP, MESSAGE_TEXT
from v$diag_alert_ext;


x$dbgalertext 뷰 조회

1
2
3
SQL> select ORIGINATING_TIMESTAMP, MESSAGE_TEXT
from x$dbgalertext
where message_text like '%ORA-%';


alert로그만을 확인 하고 싶을 경우 component_id 값을 rdbms로 지정

1
2
3
SQL> select ORIGINATING_TIMESTAMP, MESSAGE_TEXT
from v$diag_alert_ext
where trim (component_id) = 'rdbms';


listener로그만을 확인 하고 싶을 경우 component_id 값을 tnslsnr로 지정

1
2
3
SQL> select ORIGINATING_TIMESTAMP, MESSAGE_TEXT
from v$diag_alert_ext
where trim (component_id) = 'tnslsnr';


또한 로그의 양이 많거나, 원하는 기간 내의 로그를 조회하고 싶다면 시간조절 또한 가능함

1
2
3
SQL> select ORIGINATING_TIMESTAMP, MESSAGE_TEXT
from v$diag_alert_ext
where originating_timestamp > systimestamp - interval '1' hour;


30일 이전부터 현재까지의 라인 넘버와 ORA 메세지 확인

1
2
3
4
5
6
SQL> select rownum "line",
message_text "error"
from x$dbgalertext
where originating_timestamp > (sysdate - 30)
and message_text like '%ORA-%'
order by originating_timestamp



참조 : 

http://www.dba-oracle.com/t_v$diag_alert_ext.htm

http://www.dba-oracle.com/t_alert_log_xml_reading.htm

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/refrn/V-DIAG_ALERT_EXT.html#GUID-7EC93FE0-FF30-4A94-92BC-785E2BCB38F3

How to - Monitor Non Critical 11g Database Alert Log Errors Using a SQL UDM (문서 ID 961682.1)

https://m.blog.naver.com/whdahek/220772956426