GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwalten Sie das Wachstum des Oracle-Datenbank-Audit-Dateiverzeichnisses mit cron (nur ASM-Instanzen)

Die Zielverzeichnisse der Überwachungsdateien für eine ASM-Instanz können so anwachsen, dass sie eine sehr große Anzahl von Dateien enthalten, wenn sie nicht regelmäßig gewartet werden. Eine sehr große Anzahl von Dateien kann dazu führen, dass dem Dateisystem der freie Speicherplatz oder die Inodes ausgehen, oder dass Oracle aufgrund von Skalierungsbeschränkungen für Dateisystemverzeichnisse sehr langsam ausgeführt wird, was den Anschein erwecken kann, dass die ASM-Instanz hängen bleibt Start.

In diesem Beitrag wird erläutert, wie Sie das Linux-Dienstprogramm cron verwenden, um die Anzahl der Dateien in den Zielverzeichnissen der Überwachungsdatei zu verwalten. Diese Schritte müssen für die ASM-Instanz auf jedem Datenbankserver durchgeführt werden. Dieses Dokument erläutert, wie die Zielverzeichnisse der Prüfdatei nur für ASM-Instanzen verwaltet werden.

Schritt 1 – Identifizieren Sie die ASM-Audit-Verzeichnisse

Es gibt drei Verzeichnisse, die Überwachungsdateien enthalten können. Alle drei müssen verwaltet werden, um übermäßiges Wachstum zu kontrollieren.

Zwei Standardspeicherorte basieren auf Umgebungsvariableneinstellungen, wenn die ASM-Instanz gestartet wird. Um die Standardstandorte für Ihr System zu bestimmen, melden Sie sich als Eigentümer der Grid-Infrastruktur-Software an (normalerweise entweder Oracle oder Grid), stellen Sie Ihre Umgebung so ein, dass Sie eine Verbindung zur ASM-Instanz herstellen können, und führen Sie dann die unten angegebenen „Echo“-Befehle aus. In diesem Beispiel sind die beiden standardmäßigen Prüfverzeichnisse /u01/app/11.2.0/grid/rdbms/audit und /u01/app/oracle/admin/+ASM1/adump.

$ . /usr/local/bin/oraenv
ORACLE_SID = [+ASM1] ? +ASM1
The Oracle base for ORACLE_HOME=/u01/app/11.2.0/grid is /u01/app/oracle
$ echo $ORACLE_HOME/rdbms/audit
/u01/app/11.2.0/grid/rdbms/audit
$ echo $ORACLE_BASE/admin/$ORACLE_SID/adump
/u01/app/oracle/admin/+ASM1/adump

Das dritte ASM-Audit-Verzeichnis finden Sie, indem Sie sich mit SQL*Plus bei der ASM-Instanz anmelden und diese Anweisung ausführen:

$ sqlplus '/ as sysasm'

SQL> select value from v$parameter where name = 'audit_file_dest';

VALUE
--------------------------------------------------------------------------------
/u01/app/11.2.0/grid/rdbms/audit

Alle drei ASM-Audit-Verzeichnisse werden mit cron verwaltet.

Schritt 2 – Geben Sie dem Eigentümer der Grid Infrastructure-Software die Erlaubnis, Cron zu verwenden

Audit-Dateien gehören dem Eigentümer der Grid-Infrastruktursoftware, bei dem es sich in der Regel um Oracle oder Grid handelt. Befehle zum Verschieben oder Entfernen von Überwachungsdateien müssen als Eigentümer der Grid Infrastructure-Software ausgeführt werden. Fügen Sie als Root den Eigentümer der Grid Infrastructure-Software zur Datei /etc/cron.allow hinzu. Die folgenden Beispiele verwenden den Benutzer oracle.

# echo oracle >> /etc/cron.allow

Schritt 3 – Befehl zu crontab hinzufügen, um Audit-Dateien wöchentlich zu verwalten

Fügen Sie als Eigentümer der Grid Infrastructure-Software einen Eintrag zur crontab-Datei hinzu. Der folgende Befehl startet eine vi(P)-Befehlsbearbeitungssitzung, um die vorhandene Crontab-Datei zu bearbeiten oder eine neue Crontab-Datei zu erstellen, falls noch keine vorhanden ist.

$ crontab -e

Fügen Sie dieser Datei Folgendes als einzelne Zeile hinzu:

0 2 * * sun /usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +30 -delete

Dieser crontab-Eintrag führt den Find-Befehl jeden Sonntag um 2 Uhr morgens aus. Der find-Befehl löscht alle Audit-Dateien in den drei ASM-Audit-Verzeichnissen, die älter als 30 Tage sind.

Wenn Sie Audit-Dateien für einen längeren Zeitraum aufbewahren möchten, können Sie Audit-Dateien mit einem crontab-Eintrag wie dem folgenden in einem anderen Verzeichnis oder auf einem anderen Speichergerät archivieren, anstatt die Audit-Dateien mit dem Befehl find(1) zu löschen:

0 2 * * sun /usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +30 -execdir /bin/mv {} /archived_audit_dir \;

Dieser crontab-Eintrag führt den Find-Befehl jeden Sonntag um 2 Uhr morgens aus. Der Befehl find verschiebt alle Audit-Dateien in den drei ASM-Audit-Verzeichnissen, die älter als 30 Tage sind, nach /archived_audit_dir. Speichern und beenden Sie die Crontab-Datei mit vi-Befehlen ([ESC] :wq), und überprüfen Sie dann den Inhalt der Crontab.

$ crontab -l
0 2 * * sun /usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +30 -delete

Fehlerbehebung

Wenn alte Audit-Dateien nicht entfernt werden, führen Sie die folgenden Schritte aus:

1. Um zu überwachen, dass Cron den Find-Befehl planmäßig ausführt, und als richtiger Eigentümer der Grid Infrastructure-Software, überprüfen Sie die Datei /var/log/cron Datei als Root-Benutzer für einen Eintrag wie den folgenden:

Feb 20 02:00:01 dm01db01 crond[6936]: (oracle) CMD (/usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +60 -delete)

2. Melden Sie sich als der Benutzer an, dem der Crontab-Eintrag gehört (d. h. der Eigentümer der Grid Infrastructure-Software). Führen Sie den Befehl find manuell aus, um die Richtigkeit der Befehlssyntax zu überprüfen und sicherzustellen, dass keine Fehler gemeldet werden.


Linux
  1. So verwalten Sie Linux-Dateifunktionen

  2. So erstellen Sie eine Datenbank in MySQL mit MySQL Workbench

  3. So verwalten Sie Benutzer mit useradd unter Linux

  4. Wie leite ich nur Stderr um?

  5. Wie sichert man seine MySQL-Datenbank mit phpMyAdmin?

So lesen Sie eine Datei mit Leerzeichen in Linux

Verwalten Sie Verzeichnis- und Dateiberechtigungen mit chmod Recursive

So planen Sie Jobs mit Cron in Linux

Verwalten Sie ASM-Audit-Dateien mit Syslog – konfigurieren Sie Lograte und Auditing

So prüfen Sie den Dateizugriff unter Linux

Wie fülle ich eine Datei mit FF mit dd auf?