Blog 
Management des Automatic Diagnostic Repository

Mit der 11g Veröffentlichung hat Oracle das Prinzip der automatischen Diagnose-Ablage (Automatic Diagnostic Repository, ADR) eingeführt, die eine unabhängige Verzeichnisstruktur für alle Arten von Logs und Spuren ist für die Datenbank, Listener und andere Oracle Produkte. Das Verzeichnis „diag befindet sich in $ORACLE_BASE, also sollten Sie sicherstellen, dass diese Variable auf das richtige Verzeichnis eingestellt ist. Wenn sie nicht gesetzt ist, werden die Dateien in $ORACLE_HOME/diag gespeichert.

Mit Oracle 11g war es ein Startpunkt und mehrere Teile der Oracle Datenbank, wie die Grid Infrastuktur, waren nicht in die neue Struktur eingeweiht. Mit Oracle 12c sind jetzt die meisten Logs, Spuren und Kerne in verschiedenen Verzeichnissen unter $ORACLE_BASE/diag (außer asmcmd, welches $ORACLE_BASE/log/diag nutzt!).

Logs und Spuren werden häufig zweifach in dieser Struktur gespeichert: die gute, alte Alarm-Datei wird als xml-Datei in $ORACLE_BASE/diag/rdbms/<DB__NAME>/<ORACLE_SID>/alert gespeichert und im zugehörigen Spurenverzeichnis im alten ascii-Layout.

Wie viele von Ihnen schon bemerkt haben, kann die ADR mit der Zeit ziemlich groß werden. Ich habe alert.log und listener.log mit einer Größe von mehreren GByte gesehen, die die gesamte Orale Datenbank Umgebung anhalten können, weil das Filesystem voll wird.

ADRCI

Aber einer der Vorrteile der ADR ist, dass es die Dateien ohne menschliches Eingreifen verwalten kann. Es gibt eine zugehörige Purge-Funktion, sodass alte Logs und Spuren automatische gelöscht werden. Leider liegt die Standard-Aufbewahrungsdauer für diese Logs bei einem Jahr! Es gibt zwei Parameter: SHORTP_POLICY (Standard 720 Stunden = 30 Tage) und LONGP_POLICY (Standard 8720 Stunden = 365 Tage).

Ich denke, normalerweise ist es nicht nötig ein Jahre alte Log Datein online zu lassen, es könnte also ratsam sein, den Parameter mit dem ADR Befehlszeilen-Interface zu ändern:

% adrci

Wenn Sie nur eine Datenbank haben und keine speziellen Einstellungen, sollte es nur eine ADR-Home geben und Sie können sofort weitermachen und die Werte ändern. Wenn Sie, wie in meiner Umgebung, mehrere Datenbanken haben, müssen Sie die Umgebung zu erst auswählen:

adrci> show homes 
diag/rdbms/rac112/RAC1122 
diag/rdbms/rac112/TEST 
diag/rdbms/rac112/RAC1121 
diag/rdbms/ron112/RON112_2 
diag/rdbms/ron112/RON1121 
diag/rdbms/ron112/RON112_1 
adrci> set home diag/rdbms/rac112/RAC1122

Jetzt können Sie die Parameter für die spezifische Umgebung ändern:

adrci> show control 
ADR Home = /u01/app/oracle/diag/rdbms/rac112/RAC1122: 
************************************************************************* 
ADRID      SHORTP_POLICY LONGP_POLICY LAST_MOD_TIME ...
---------- ------------- ------------ --------------------------------- 
1122254562           720         8760 2011-01-11 13:08:51.956565 +01:00
1 rows fetched 

adrci> set control (SHORTP_POLICY = 168) 
adrci> set control (LONGP_POLICY = 720) 
adrci> exit

Dies wird automatische alte Log-Dateien, Spuren, etc. löschen und den Platz wieder frei machen. Wenn Sie es eilig haben, können Sie die Dateien mit adrci auch manuell löschen:

adrci> set home diag/rdbms/rac112/RAC1122 
adrci> purge

Listener.log

Ein Tipp noch zum listener.log: Wenn Sie ein Web-Interface haben, begegnet Ihnen vielleicht ein recht großer listener.log, weil jeder Connect/Disconnect aufgezeichnet wird. Gerade erst hatte einer meiner Kunden einen 10 GB listener.log und er füllte sich innerhalb von Minuten.

In diesem Fall sollten Sie die Aufzeichnung für den Listener besser komplett ausschalten:

% lsnrctl 
LSNRCTL> show log_status 
Connecting to (DESCRIPTION= (ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) 
LISTENER parameter “log_status” set to ON 
The command completed successfully 
LSNRCTL> set log_status off

Das wird Ihnen helfen Ihren diag Zielort frei zu machen.

Wenn Sie Kommentare oder Anmerkungen haben, können Sie sich gern mit mir in Verbindung setzen.

Keine Kommentare zu “Management des Automatic Diagnostic Repository

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Was kann CarajanDB für Sie tun?