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
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.
-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"
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/orcladrci> select sizep_policy from adr_control_aux
ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
**************************************************************
SIZEP_POLICY
--------------------
18446744073709551615
1 row fetched
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.
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