alert file이란 흔히 alert log라고 부르는 파일을 말한다. 이 파일은 DB가 운영되며 발생되는 모든 메세지를 텍스트 파일 형태로 저장하고 있다. 예를 들면 언제 DB가 OPEN되었는지, 오류가 발생했는지, 로그 스위치는 언제 발생했는지, 테이블스페이스가 언제 생성되었고 언제 데이터파일이 추가되었는지 등을 모두 확인 가능하다. 

얼럿 로그 파일을 이용해 External Table을 생성해주면 보다 쉽게 이 파일을 조회 및 활용 가능해진다.

sys@CATDB> show parameter DUMP

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_core_dump                 string      partial
background_dump_dest                 string      /home/oracle/admin/catdb/bdump
core_dump_dest                       string      /home/oracle/admin/catdb/cdump
max_dump_file_size                   string      UNLIMITED
shadow_core_dump                     string      partial
user_dump_dest                       string      /home/oracle/admin/catdb/udump
sys@CATDB> CREATE DIRECTORY bdump AS '/home/oracle/admin/catdb/bdump';         

DIRECTORY created.

sys@CATDB> CREATE TABLE alert_log
  2  (
  3  text_line VARCHAR2(255)
  4  )
  5  ORGANIZATION external
  6  (
  7  TYPE oracle_loader
  8  DEFAULT DIRECTORY bdump
  9  ACCESS parameters
 10  (
 11  records delimited BY newline
 12  fields
 13  )
 14  location
 15  (
 16  'alert_catdb.log'
 17  )
 18  )
 19  ;

TABLE created.

위와 같이 생성해준 뒤, 단순히 select * from alert_log 구문을 날리는 것 만으로도 db상에서 얼럿 로그에 대한 조회가 가능해진다. 참고 서적에는 얼럿 로그상에 규칙적으로 등장하는 문자열을 이용해서 DB의 SHUTDOWN, OPEN 시간등을 측정하는 예제가 나와있다. 교재 그대로하면 NLS가 안맞아서 'ORA-01846: not a valid day of the week'라는 오류가 날 것이다. 아래와 같이 수정하여 입력해주면 교재와 같은 출력 결과를 얻을 수 있을 것이다.

sys@CATDB> SELECT TO_CHAR(last_time,'dd-mon-yyyy hh24:mi') shutdown,
  2         TO_CHAR(start_time,'dd-mon-yyyy hh24:mi') startup,
  3         ROUND((start_time-last_time)*24*60,2) mins_down,
  4         ROUND((last_time-LAG(start_time) over (ORDER BY r)),2) days_up,
  5         CASE WHEN (LEAD(r) over (ORDER BY r) IS NULL )
  6              THEN ROUND((sysdate-start_time),2)
  7          END days_still_up
  8    FROM (
  9  SELECT r,
 10         TO_DATE(SUBSTR(last_time,1,20)||SUBSTR(last_time,25,4), 'Dy Mon DD HH24:MI:SS YYYY') last_time,
 11         TO_DATE(SUBSTR(start_time,1,20)||SUBSTR(start_time,25,4),'Dy Mon DD HH24:MI:SS YYYY') start_time
 12    FROM (
 13  SELECT r,
 14         text_line,
 15         LAG(text_line,1) over (ORDER BY r) start_time,
 16         LAG(text_line,2) over (ORDER BY r) last_time
 17    FROM (
 18  SELECT ROWNUM r, text_line
 19    FROM alert_log
 20   WHERE text_line LIKE '___ ___ __ __:__:__ KST 20__'
 21      OR text_line LIKE 'Starting ORACLE instance %'
 22             )
 23             )
 24   WHERE text_line LIKE 'Starting ORACLE instance %'
 25         )
 26  /

SHUTDOWN                   STARTUP                     MINS_DOWN    DAYS_UP DAYS_STILL_UP
-------------------------- -------------------------- ---------- ---------- -------------
                           28-sep-2011 18:06
28-sep-2011 18:23          28-sep-2011 18:23                 .07        .01
28-sep-2011 18:42          28-sep-2011 18:42                   0        .01
03-oct-2011 05:56          03-oct-2011 05:59                3.37       4.47
05-oct-2011 18:00          06-oct-2011 11:44             1063.48        2.5
14-oct-2011 23:00          15-oct-2011 19:11             1210.32       8.47
18-oct-2011 18:24          18-oct-2011 18:24                 .05       2.97
18-oct-2011 19:23          18-oct-2011 19:24                 .68        .04
13-nov-2011 03:32          13-nov-2011 04:06               33.68      25.34
04-dec-2011 05:04          04-dec-2011 10:23               319.6      21.04
18-dec-2011 09:30          19-dec-2011 00:15              884.97      13.96
20-dec-2011 16:18          20-dec-2011 16:19                 .77       1.67
20-dec-2011 16:20          20-dec-2011 16:20                 .02          0
20-dec-2011 16:30          20-dec-2011 16:30                 .38        .01
20-dec-2011 16:31          20-dec-2011 16:33                2.32          0
20-dec-2011 16:33          20-dec-2011 16:33                 .02          0
26-dec-2011 09:02          27-dec-2011 09:35              1473.8       5.69
31-dec-2011 20:46          31-dec-2011 21:42               55.43       4.47
07-jan-2012 09:01          07-jan-2012 21:27              745.05       6.47
10-jan-2012 01:26          10-jan-2012 03:22              115.97       2.17
13-jan-2012 20:13          13-jan-2012 22:05              111.65        3.7          5.55

21 ROWS selected.

- 11g부터는 ADRCI 툴을 활용하여 보다 쉽게 얼럿 로그의 조회가 가능하다. 
- XML 형식의 얼럿 로그 파일도 생성되므로 XML 리포트 생성 툴등을 통해 리포트를 생성하는 식으로 활용 가능하다.
- Oracle Enterprise Manager를 통해서도 쉽게 얼럿 로그의 중요 부분들을 조회 가능하다.

레이블 (0)

  • 레이블 없음
댓글 쓰기...

첨부 파일  (0)

첨부 파일 추가하기
공유된 파일이 아직 없습니다.