Sunday, April 17, 2016

Automatic Diagnostic Repository - Oracle

Automatic Diagnostic Repository - Oracle

In 11g, RDBMS diagnostic data has been reorganized and is stored inside a common directory structure, the Automatic Diagnostic Repository (ADR). An ADR is a centralized directory structure where one can find trace files, alert messages, incident dumps, core files, etc.

Automatic Diagnostic Repository ( ADR ) :

All trace files, core files, and the alert files are now organized into a directory structure comprising the Automatic Diagnostic Repository (ADR).

The ADR is a file-based repository for database diagnostic data. It has a unified directory structure across multiple instances and multiple products. Beginning with Release 11g, the database, Automatic Storage Management (ASM), Cluster Ready Services (CRS), and other Oracle products or components store all diagnostic data in the ADR. Each instance of each product stores diagnostic data underneath its own ADR home directory. For example, in an Oracle Real Application Clusters environment with shared storage and ASM, each database instance and each ASM instance has a home directory within the ADR.
ADR's unified directory structure, consistent diagnostic data formats across products and instances, and a unified set of tools enable customers and Oracle Support to correlate and analyze diagnostic data across multiple instances.

Problems and Incidents :

Problem : is a critical error in the database
E.g. : ORA-600 , ORA-7445 , ORA-4031 etc.

Problem key : Every problem has a problem key, which is a text string that includes an error code (such as ORA-600) and in some cases, one or more error parameters.

E.g.: €˜ORA-4030€™ , €˜ORA-600 [ktfacht1-0]

Incident : is a single occurance of a problem . Each incident has a numeric incident id.

Where is ADR located :

The location of the ADR is controlled by the Oracle "diagnostic_dest" parameter. Path specified in the 'diagnostic_dest' parameter defines the ADR root directory,ADR BASE. The first subdirectory inside an ADR (under the <adr_base> directory) is always named "diag"

For example, if the 'diagnostic_dest' and thus the <adr_base> is specified as "$ORACLE_HOME/log", then expect to find the subdirectory "$ORACLE_HOME/log/diag". Below this will be <adr_home> .
Any number of instances/components can share same ADR BASE. Under ADR BASE there will be individual ADR HOMES.

Under ADR BASE ,the address of an <adr_home> will be similar to :
diag/<product_type>/<prod_id>/<instance_id>.
Inside each ADR home, you can find several subdirectories, each for storing a specific type of diagnostic data. Among the subdirectories, you should be able to find TRACE, ALERT, INCIDENT, CDUMP etc.

ADR HOME contents :

You will find the following directories under ADR HOME -

Alert : The alert directory contains the XML alert log

Cdump : core dumps are stored in this directory

Trace : Process trace files and Alert.log are stored in the trace directory. 'Background_dump_dest' and 'user_dump_dest' are now ignored in 11g. Now all the trace files will be generated in 'trace' directory.

Incident : The incident directory stores dump files created when critical errors are encountered.
Each occurrence of a critical error( incident ) is given its own incident directory, with the incident ID used to form the directory name.

Metadata : The metadata directory stores a series of files that contain diagnostic metadata.

HM : The hm directory stores reports for health checks

Incpkg, ir, lck, sweep : These directories contain internal diagnosability framework state.


DIAGNOSTIC_DEST - Default value :

If environment variable ORACLE_BASE is set, DIAGNOSTIC_DEST is set to the directory designated by ORACLE_BASE.
If environment variable ORACLE_BASE is not set, DIAGNOSTIC_DEST is set to ORACLE_HOME/log

V$DIAG_INFO :

For each database , you can query v$diag_info to check its ADR locations.
This shows us the ADR BASE , ADR home , trace file locations , XML Alert location , incident dump locations , core dump and health monitor reports.
Also gives us the default session trace ( for the current session ) and number of problems , incidents reported in the database.

ADR Command Interpreter (ADRCI) :

ADRCI is the command line utility using which ADR is accessed.

Enter the following command at the operating system command prompt:

% adrci
The utility starts and displays the following prompt:

adrci>
There are various commands that can be executed from 'adrci' to view Alert log , trace files , incidents reported , etc.

There is no need to log in to ADRCI, because the data in ADR is just for diagnostic purposes and not intended to be secure. ADR data is secured only by operating system permissions on the ADR directories

No comments:

Post a Comment