single.php
< Beitrag von Christoph Förster

Bereinigen der Oracle-Datenbankumgebung mit ADRCI

Jeder Datenbankadministrator kennt das Problem: Oracle-Datenbankumgebungen sind relativ umfangreich bei der Installation.

Wenn die Datenbank dann in Betrieb genommen ist, wird es noch schlimmer: Es werden viele Log-Files, Trace-Files, Audit-Files etc. erzeugt, die an verschiedenen Orten im File-System und zum Teil in der Datenbank gespeichert werden. Das Hauptaugenmerk dieses Artikels liegt auf dem File-System und dem Bereinigen der Oracle-Datenbankumgebung mit ADRCI – dem Automatic Diagnostic Repository Command Interpreter – um dort eine Ordnung in die diversen Informationen der Datenbank zu bekommen.

Wo finde ich die Informationen über meine Datenbank?

Bis Oracle 10gR2 wurden diese Informationen an verschiedenen Orten im File-System abgelegt, deren genaue Pfadangaben man meist nur mit einem Blick in diverse Parameter der Datenbank ermitteln konnte (background_dump_dest etc.). Zudem musste man dann noch prüfen, welche Files in welchem Pfad liegen.

Seit Oracle 11gR1 gibt es einen neuen Parameter diagnostic_dest, welcher den Pfad angibt, wo die Log-Files, Trace-Files etc. abgelegt werden sollen. Somit wurde ein zentraler Ort geschaffen, in dem man Informationen über seine Datenbank finden kann. Die Struktur in diesem Ordner ist auch immer gleich. Dies wurde seitens Oracle vereinheitlicht:

ora_diag1

Abb. 1: Ordner-Struktur Oracle Datenbank-Server (Dies ist nur ein Auszug, es kann je nach Installations-Art und Umfang mehr Ordner geben).

Hilfe durch einheitliche Struktur der Oracle-Datenbank

Die einheitliche Struktur, die auch bei anderen Oracle-Produkten so genutzt wird, ist zwar hilfreich, jedoch muss man sich immer noch Gedanken machen, wie man der Dateien in diesen Ordnern „Herr“ wird. Hinzu kommt z. B. beim Log des Listeners, dass sich diese Datei nicht so ohne Weiteres im laufenden Betrieb löschen oder renamen lässt.

Grundsätzlich ist zu der Struktur im diagnostic_dest zu sagen, dass es für fast jeden Bereich der Datenbank einen Ordner gibt: So gibt es einen Ordner für

  • den Automatic Storage Manager ASM,
  • für den Listener unter listener
  • und für die Datenbank unter RDBMS.

Hier ist zu beachten, dass Oracle die File-Struktur in den Ordner weiter aufsplittet, um dort auch mehr als eine Oracle-Installation auf einem Server abbilden zu können. Nehmen wir beispielsweise den Ordner RDBMS, der für die Datenbanken genutzt wird:

Bereinigen der Oracle-Datenbankumgebung mit ADRCI

Beispiel für RDBMS-Ordner auf einem System

Sie sehen, dass der Datenbank-Server dort eine Struktur vorhält und man so auch mehr als eine Datenbank oder andere Oracle-Produkte auf einem Server haben kann und trotzdem nicht den Überblick verliert.

Bereinigen der Oracle-Datenbankumgebung mit ADRCI

Jedem stellt sich nun – im Hinblick auf den Titel des Beitrags – natürlich die Frage, wie man die Ordner bzw. die Dateien dort verwaltet? Wie kann man alte Dateien löschen? Muss ich das mühevoll per Hand machen?

Nein, Oracle stellt dafür ein Tool zur Verfügung, das noch viel mehr kann, als nur Dateien zu löschen: Automatic Diagnostic Repository Command Interface, kurz ADRCI.

Dieses mächtige Werkzeug kann bei ORA-Fehlern entsprechende Problems und Incidents darstellen, alle notwendigen Files für den Oracle-Support zusammenstellen und zippen, das Alert.log der Datenbank anzeigen, das Listener.log im laufenden Betrieb sowie Trace-Files löschen.

Dazu startet man ADRCI. Nun muss man zuerst ein Home setzen, auf das die Einstellungen wirken sollen. In unserem Beispiel handelt es sich um das Home meiner lokalen XE-Datenbank.

Nachdem man das Home gesetzt hat, kann man mittels

sehen, welche Lösch-Einstellungen gesetzt sind.

(Hier habe ich bewusst weitere Informationen ausgeblendet.)

Man sieht hier 2 Einträge; einmal eine Short Policy und eine Long Policy.

Der Unterschied der Policies ist relativ einfach:

  • Short Policy bezieht sich auf Trace-Files, alert_%NAME_DER_DATENBANK%.log etc.
  • Long Policy bezieht sich auf Incidents und Problems.

Der Default ist für Short Policy 720 Stunden (30 Tage) und für Long Policy 8.760 Stunden (365 Tage).

Man erhält beim Befehl show control noch weitere Informationen, die zeigen, wann der Server zuletzt im diagnostic_dest bereinigt hat:

Hier kann man nun sehen, dass die Einstellungen zum letzten Mal am 09.06.2016 geändert wurden und der letzte automatische Purge am 30.06.2016 lief.

Der automatische Purge lässt sich leider nicht dahingehend beeinflussen, wann und wie er starten soll. Es ist zurzeit fest vorgegeben, dass der erstmalige Lauf 2 Tage nach Start der Datenbank-Instant starten soll und dann immer im Rhythmus der Short Policy und Long Policy. Das ist zwar noch stark eingeschränkt, aber so lassen sich die Trace-Files und Co. gut verwalten. Und der Administrator muss nicht jeden Tag nach einem vollen Listener.log schauen, was in früheren Oracle-Versionen immer wieder zum Stillstand der Datenbank geführt hat.

Fazit – Arbeitserleichterung für den Oracle-Admin dank ADRCI

Abschließend bleibt zu sagen, dass dem Datenbankadministrator zwar der Job durch Tools wie ADRCI vereinfacht wird, jedoch muss man sich weiterhin Gedanken machen, welche Files man wie lange aufheben will (für den Störungsfall o. Ä.). Zudem muss der Administrator die Funktionen eines mächtigen Tools wie ADRCI erst kennen lernen. Wenn das jedoch erfolgt ist, kann man mit ADRCI mit wenig Aufwand Files verwalten, Informationen für Requests beim Support zusammenstellen etc.

Folgen
X

Folgen

E-mail : *
Kategorie: Oracle-Database | Schlagwörter: , | Kommentare: 0

Beitrag kommentieren

CAPTCHA * Time limit is exhausted. Please reload CAPTCHA.