제품 : Database
작성날짜 : 2008-01-07
PURPOSE
================================
기존 제품에서와 달리, 11g 는 alert log 를 text file 뿐만 아니라 XML-formatted file 로도 기록합니다. 또한 그 위치가 기존의 BDUMP가 아니므로, 어떤 문제가 발생하거나 INSTANCE의 상태를 확인하려 할 때 혼란스러울 수 있습니다.
-- 차례 --
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. ADR 의 개념과 11g에서 ALERTLOG의 위치
1-1. ADR BASE
1-2. ADR HOME
1-3. ALERTLOG의 새로운 위치
1-4. 기타 '기존 경로'와 '새로운 경로' 안내
2. PROBLEM과 INCIDENT
2-1. What is a Problem?
2-2. What is an Incident?
3. ADRCI
3-1. ALERTLOG 살펴보기
3-2. Server Trace File 찾기
3-3. Listener Trace File 찾기
3-4. 옛날 방법을 통해 Trace File에 접근하기
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EXPLANATION
================================
1. ADR 의 개념과 11g에서 ALERTLOG의 위치
1-1. ADR BASE
11g에서는 BDUMP와 UDUMP와 같은 구분이 없어지며, ADR(Automatic Diagnostic Repository)이라는 concept으로 관리됩니다. ADR은 기존에 BDUMP와 UDUMP로 나뉘어 관리되던 Diagnostic 정보를 한 곳에 모아 관리하고 손쉽게 Oracle Support에 그 Data를 전달할 수 있도록 도와줍니다.
먼저 ADR_BASE의 위치는 INSTANCE에서 DIAGNOSTIC_DEST 파라미터로 확인할 수 있습니다.
(1) $ORACLE_BASE가 설정되어 있다면, DIAGNOSTIC_DEST 의 위치는 $ORACLE_BASE 입니다.
(2) $ORACLE_BASE가 설정되어 있지 않다면, DIAGNOSTIC_DEST 의 위치는 $ORACLE_HOME/log 입니다.
현재 설정위치는, 다음과 같이 INSTANCE 상에서 DIAGNOSTIC_DEST 를 확인할 수 있습니다. 아래의 경우 $ORACLE_BASE 가 ADR_BASE 인 것을 볼 수 있습니다. ($ORACLE_HOME이 설정되지 않음)
SQL> show parameter diagno
NAME TYPE VALUE
-----------
diagnostic_dest string /opt/oracle/product
다음 query를 통해, 관련 정보를 자세히 확인할 수 있습니다.
SQL> select * from v$diag_info
1-2. ADR HOME
설치된 ORACLE PRODUCT별 INSTANCE의 ADR 위치를, ADR HOME이라고 합니다. 다음과 형태로, 그 위치가 결정됩니다.
ADR_BASE/diag/product_type/product_id/instance_id
예들 들어, ADR_BASE가 /opt/oracle/product 라면 ADR_HOME은 다음과 같습니다.
/opt/oracle/product/diag/rdbms/ora11/ORA11
1-3. ALERTLOG의 새로운 위치
(1) XML 형태의 ALERT
XML 형태의 ALERTLOG는 다음 위치에서 찾을 수 있으며, 이를 열기 위해서는 ADRCI라는 별도의 Utility가 필요합니다.
ADR_HOME/diag/product_type/product_id/instance_id/alert
다음과 같은 방법을 통해서도 그 위치를 확인할 수 있습니다.
SQL> select value from v$diag_info where name ='Diag Alert';
VALUE
/opt/oracle/product/diag/rdbms/ora11/ORA11/alert
(2) TEXT 형태의 ALERT
일반 ALERTLOG는 다음 위치에서 찾을 수 있습니다.
ADR_HOME/diag/product_type/product_id/instance_id/trace
다음과 같은 방법을 통해서도 그 위치를 확인할 수 있습니다.
SQL> select value from v$diag_info where name ='Diag Trace';
VALUE
/opt/oracle/product/diag/rdbms/ora11/ORA11/trace
1-4. 기타 '기존 경로'와 '새로운 경로' 안내
(1) Foreground Process Trace Files
USER_DUMP_DEST
-> ADR HOME/trace
(2) Background Process Trace Files
BACKGROUND_DUMP_DEST
-> ADR HOME/trace
(3) Database Alert log File
BACKGROUND_DUMP_DEST
-> ADR HOME/alert/log.xml OR ADR HOME/trace/alert_<SID>.log
(4) SQL*Net Listener Log File
LOG_DIRECTORY_LISTENER -
ADR HOME/alert/log.xml
(5) Core Dump Files
CORE_DUMP_DEST
-> ADR HOME/cdump
(6) Incident Dump Files (아래에서 n은 정수)
USER_DUMP_DEST AND BACKGROUND_DUMP_DEST
-> ADR HOME/incident/incdir_n
2. PROBLEM과 INCIDENT
11g를 관리하기 위해서는 PROBLEM과 INCIDENT라는 개념을 인지해야 합니다.
2-1. What is a Problem?
먼저 PROBLEM이란 DATABASE상의 critical error 를 일컫습니다. 예를 들어, ORA-600 / ORA-7445 / ORA-4031 / ORA-1578 과 같은 MESSAGE를 예로 들 수 있습니다. 이러한 PROBLEM들은 ADR내에 그 정보가 기록됩니다.
2-2. What is an Incident?
INCIDENT라 함은, 'PROBLEM의 1회 발생' 을 말합니다.
다시 말해 'ORA-1578 메세지가 여러번 기록되는 경우라면, ORA-1578이라는 '하나의 PROBLEM'에 대해 '여러 INCIDENT'가 ADR내에 생성됨을 의미합니다.
3. ADRCI
- 새롭게 등장한 ADR 관련 정보를 다루기 위해서는, ADR Commandline Interface (ADRCI)를 사용합니다.
다음과 같이 adrci 를 기동시킵니다.
oracle@prdsup5:~> adrci
ADRCI: Release 11.1.0.6.0 - Beta on Mon Dec 31 18:48:38 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.
ADR base = "/opt/oracle/product"
adrci>
- ADRCI에서 SHOW 명령어를 실행할 경우, default Editor가 실행됩니다. 만약 이 부분에 문제가 있다면 다음과 같이, Editor를 지정할 수 있습니다.
adrci> set editor vi
3-1. ALERTLOG 살펴보기
- 기본적으로 'SHOW ALERT' command를 사용합니다만, 다음과 같이 TAIL 옵션을 사용하여 최신 정보만 살펴볼 수도 있습니다.
adrci> SHOW ALERT -TAIL
adrci> SHOW ALERT -TAIL 50 // 마지막 50라인만 살펴보기
- 특정 terminal에서 alertlog의 "live monitoring"이 가능합니다.
adrci> SPOOL /home/steve/MYALERT.LOG
adrci> SHOW ALERT -TERM
adrci> SPOOL OFF
- ORA-600에 관련된 메세지만 살펴볼 수도 있습니다.
adrci> SHOW ALERT -P "MESSAGE_TEXT LIKE '%ORA-600%'"
3-2. Server Trace File 찾기
- 기본적으로 'SHOW TRACEFILE' command를 사용합니다.
adrci> show tracefile
adrci> show trace <trace file.trc>
- 특정 KEYWORD를 사용하여 찾을 수 있습니다.
adrci> SHOW TRACEFILE %mmon%
- 특정 PROCESS ID를 사용하여 찾을 수 있습니다.
adrci> SHOW TRACEFILE -I 1681
3-3. Listener Trace File 찾기
- 기본적으로 'SHOW TRACEFILE' command를 사용합니다.
adrci> show tracefile
adrci> show trace <trace file.trc>
3-4. 옛날 방법을 통해 Trace File에 접근하기
(1) Server Trace File 찾기
cd $HOME/oradiag_oracle/diag/lsnrctl/$HOSTNAME/$HOSTNAME/trace
(2) Listener Trace File 찾기
cd $HOME/oradiag_oracle/diag/lsnrctl/$HOSTNAME/$HOSTNAME/trace
REFERENCES
================================
ADRCI: ADR Command Interpreter
http://download.oracle.com/docs/cd/B28359_01/server.111/b28319/adrci.htm#insertedID0
Note 454927.1
Using and Disabling the Automatic Diagnostic Repository (ADR) with Oracle Net for 11g
Note 453125.1
11g Diagnosability: Frequently Asked Questions
Note 415733.1
ADRCI Reference guide