Automatic Diagnostic Repository

ADR è un insieme di file e directory di repository, al di fuori del db, che contengono i dati diagnostici come: 
 -Trace
- AlertLog
- Health monitor reports

L'istallazione di default prevede che la variabile ADR_BASE=ORACLE_BASE e
ADR_HOME=$ADR_BASE/diag/<product_type>/<db_id>/<instance_id>

ADR_BASE è estratto dal  seguente parametro:

SQL> show parameter diagnostic

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest                      string      /u01/app/oracle

Nell'esempio di un container ORCL e un pluggable ORCLPDB abbiamo come ADR_HOME

/u01/app/oracle/diag/rdbms/orcl/orcl
che contiene le directory seguenti:
alert  cdump  hm  incident  incpkg  ir  lck  log  metadata  metadata_dgif  metadata_pv  stage  sweep  trace

Per visualizzare la locations delle varie directory 

SQL> col name format a25
SQL> col value format a50
SQL> select name,value from v$diag_info;

NAME                      VALUE
------------------------- --------------------------------------------------
Diag Enabled              TRUE
ADR Base                  /u01/app/oracle
ADR Home                  /u01/app/oracle/diag/rdbms/orcl/orcl
Diag Trace                /u01/app/oracle/diag/rdbms/orcl/orcl/trace
Diag Alert                /u01/app/oracle/diag/rdbms/orcl/orcl/alert
Diag Incident             /u01/app/oracle/diag/rdbms/orcl/orcl/incident
Diag Cdump                /u01/app/oracle/diag/rdbms/orcl/orcl/cdump
Health Monitor            /u01/app/oracle/diag/rdbms/orcl/orcl/hm
Default Trace File        /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_29794.trc
Active Problem Count      0
Active Incident Count     0

I due parametri in giallo se sono a 0 vuol dire che non ci sono seri issue da contattare oracle support. 

L'altert log può essere visualizzato con il tool ADRI
[oracle@test ]$ adrci
ADRCI: Release 18.0.0.0.0 - Production on Tue Sep 1 14:52:27 2020
Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.
ADR base = "/u01/app/oracle"
adrci> 


I trace file contengono informazioni relative a Internal Error (contattare Oracle Support) e per supportare il tuning di applicazioni o di una istanza.
Esistono due tipi di trace file:
- quelli creati dai background process che hanno il riferimento al processo nel nome del file:
orcl_dbrm_15094.trc
orcl_mmon_15126.trc
- quelli creari dal server pocess:
orcl_ora_16203.trc

Ogni volta che si verifica un errore critico:
- viene associato un id number all'errore
- viene creato un trace file contenente l'errore e identificato dall'id number
- i dati vengono memorizzati nell'ADR

La retention policy prevede due tipologie:
- long retention period che riguarda dati diagnostici di alto valore come indicenti e alert log, e di defualt dura 365 giorni.
- short retention usato per trace e core dump e di dfault è 30 giorni.

Per effettuare il purging dei file possiamo procedere con il ridurre la dimensione allocata per ADR:

[oracle@test incident]$ adrci
ADRCI: Release 18.0.0.0.0 - Production on Tue Sep 1 14:52:27 2020
Copyright (c) 1982, 2018, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"

Settiamo il path 
adrci> set HOMEPATH diag/rdbms/orcl/orcl
adrci> select sizep_policy from adr_control_aux

ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
**************************************************************
SIZEP_POLICY
--------------------
18446744073709551615
1 row fetched

La dimensione è in byte.

adrci> select shortp_policy, longp_policy from adr_control;
ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
*************************************************************
SHORTP_POLICY LONGP_POLICY
-------------------- --------------------
720 8760
1 row fetched

I valori sono in ore infatti la short policy è di 720/24 = 30 giorni mentre la long policy è 8760/24 = 365.

Procediamo a cambiare i valori suddetti: portiamo a 200MB la dimensione dello spazio allocao per ADR:
adrci>   estimate ( sizep_policy =200000000) ;
Estimate
Short Policy Hours: 15032
Long Policy Hours: 182891
Size Policy Bytes: 200000000

Di conseguenza oracle modifica i parametri Short e Long policy Hour.

Se invece vogliamo cancellare i file dopo 8 giorni impostiamo Short e Long policy a 8 giorni =192/24  

adrci> estimate ( shortp_policy =192, longp_policy=192 ) ;
Estimate
Short Policy Hours: 192
Long Policy Hours: 192
Size Policy Bytes: 6253006

Anche lo spazio si riduce a 6MB.

Una volta stimati i valori, è possibili settarli con questi comandi:
adrci> set control (SHORTP_POLICY = 192)
adrci> set control (LONGP_POLICY = 192)
adrci> set control (SIZEP_POLICY = 6253006)

E' possibile calcora lo spazio stimato manualemente con il seguente comando da eseguire sotto la home path.
[oracle@test orcl]$ pwd
/u01/app/oracle/diag/rdbms/orcl/orcl
[oracle@test orcl]$ du -hs
14M

Se vogliamo diminuire lo spazio possiamo usare il comando purge dal tool adrci:
adrci> help purge
adrci> purge -size 5000000
Con questo comando riduco lo spazio fino a 5 MB.

[oracle@test orcl]$ du -hs
5.1M



Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database