1. Start
  2. Unternehmen
  3. Blog
  4. Neue größenbasierte ADR Purge Policy in Oracle 12.2

Neue größenbasierte ADR Purge Policy in Oracle 12.2

Mit der Einführung des Automatic Diagnostic Repository (ADR) haben wir auch einige Automatismen zur Löschung von Logs und Traces erhalten, zumindest für die Datenbank. Die Löschung basiert auf dem Alter der Dateien. Alle Dateien im ADR sind in zwei Kategorien unterteilt: Dateien mit kurzer Lebensdauer und Dateien mit langer Lebensdauer. Daher haben wir auch zwei Aufbewahrungsrichtlinien für diese Dateien, SHORTP_POLICY und LONGP_POLICY. Die Standardeinstellung von SHORTP_POLICY beträgt 720 Stunden, was ungefähr einem Monat entspricht, während LONGP_POLICY auf 8760 Stunden eingestellt wird, was ungefähr einem Jahr entspricht. Weitere Informationen zum Festlegen der Richtlinien finden Sie im  MOS Note "Retention Policy for ADR (Doc ID 564269.1)". Wenn Sie nicht sicher sind, welche Dateien von welcher Richtlinie gesteuert werden, werfen Sie einen Blick auf MOS Note "Which Files Are Part Of SHORTP_POLICY And LONGP_POLICY In ADR? (Doc ID 975448.1)", im Grunde haben Traces, Core Dumps und IPS eine kurze Lebensdauer, alle anderen haben ein langes Leben.

Dies ist ein guter Ausgangspunkt für das Housekeeping. Es kann jedoch Situationen geben, in denen viele große Tracedateien in kurzer Zeit geschrieben werden. Dies kann das Dateisystem füllen, was zu einem Datenbankausfall führt. Mit Oracle Database 12.2 gibt es eine andere größenbasierte Richtlinie. Diese ist nicht sofort sichtbar:

 

[oracle@vm140 ~]$ adrci
ADRCI: Release 12.2.0.1.0 - Production on Fri Mar 15 08:07:49 2019

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/u01/app/oracle"
adrci> set home mmidb
adrci> show homes
ADR Homes:
diag/rdbms/mmidb/MMIDB

adrci>  show control

ADR Home = /u01/app/oracle/diag/rdbms/mmidb/MMIDB:
*************************************************************************
ADRID                SHORTP_POLICY        LONGP_POLICY         LAST_MOD_TIME                            LAST_AUTOPRG_TIME                        LAST_MANUPRG_TIME                        ADRDIR_VERSION       ADRSCHM_VERSION      ADRSCHMV_SUMMARY     ADRALERT_VERSION     CREATE_TIME
-------------------- -------------------- -------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- ----------------------------------------
1312824711           72                   72                   2019-03-14 22:37:18.660133 +01:00        2019-03-14 09:13:26.445071 +01:00        2019-03-15 07:58:30.921596 +01:00        1                    2                    107                  1                    2018-10-02 09:11:29.809205 +02:00
1 row fetched

 

Um die auf Größe basierende Richtlinie (SIZEP_POLICY) anzuzeigen, müssen Sie diese explizit abfragen:

 

adrci> select sizep_policy from adr_control_aux;

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

 

Diese Zahl gibt die maximale Größe des spezifischen ADR-Homes in Byte an. Um eine Vorstellung davon zu bekommen, wie viel Speicherplatz erforderlich ist, um Dateien für einen bestimmten Zeitraum zu speichern, oder umgekehrt, können Sie den Befehl "estimate" verwenden.

 

adrci> estimate (LONGP_POLICY = 72)
Estimate
Short Policy Hours: 72
Long Policy Hours: 72
Size Policy Bytes: 2459925363

adrci> estimate (SIZEP_POLICY = 1000000000)
Estimate
Short Policy Hours: 26
Long Policy Hours: 26
Size Policy Bytes: 1000000000

 

Wenn wir also die Größe auf 1 GB beschränken wollen, können wir SIZEP_POLICY entsprechend einstellen.

 

adrci> set control (SIZEP_POLICY = 1000000000)

adrci> select sizep_policy from adr_control_aux;

ADR Home = /u01/app/oracle/diag/rdbms/mmidb/MMIDB:
*************************************************************************
SIZEP_POLICY
--------------------
1000000000
1 row fetched

 

Denken Sie jedoch daran, dass dies nicht sofort wirksam ist. Die Datenbank ist das einzige Produkt, dass das automatische Löschen vornimmt. Alle anderen ADR-Homes anderer Produkte müssen über den Befehl "purge" explizit gelöscht werden. Und auch die Datenbank führt die Bereinigung nur einmal pro Woche durch, und es gibt keine Möglichkeit, dies zu ändern. Siehe MOS Note "Is there a way to control Auto_Purge Frequency done by the MMON ? (Doc ID 1446242.1)" für Details. Daher sollten Sie in Betracht ziehen, dafür einen separaten Bereinigungsjob zu verwenden. Das "purgeLogs"-Skript (MOS Note "purgeLogs: Cleanup traces, logs in one command (Doc ID 2081655.1)") ist möglicherweise ein guter Ausgangspunkt dafür, obwohl es für die Verwendung mit ExaData, Database Appliance usw. konzipiert wurde, sollte auch bei Standardinstallationen funktionieren. 

Kommentare

|

Danke für den Blog. War auf der Suche, was der Default von gigantischen 16 ExaByte für SIZEP_POLICY bedeutet.

Kommentar schreiben

* Diese Felder sind erforderlich