Wartung der Datenbank

Tägliche automatische Wartungen

Standardmäßig ist einer der für den Benutzer eranger installierten Cronjobs für die Wartung der Datenbank zuständig:

$ crontab -l | grep expire
0 4 * * * /opt/eranger/bin/eranger-server-expire

Er reorganisiert die Daten täglich, indem er die PostgreSLQ-Autovacuum-Funktion ausführt, damit schneller auf die Daten zugegriffen werden kann.

Die Konfiguration erfolgt in der SKOOR Server Konfiguration:

/etc/opt/eranger/eranger-server.cfg

Parameter mit Standardwerten:

# Expire script config values
expire_days_long = 366
expire_days_short = 31
expire_row_limit=

Name des Parameters

Beschreibung

expire_days_long

Legt die Anzahl der Tage fest, die die folgenden Datenbankeinträge aufbewahrt werden:

  • Status Historie

  • Werte Historie

  • Alarmmeldungen

  • Gesendete Alarmmeldungen

  • Alarme

  • Änderungsprotokoll

  • Wartungen (Endzeitpunkt)

  • Benutzer (letzter Zugriff)

  • Schwellenwert Vorhersagedaten

expire_days_short

Legt die Anzahl der Tage fest, die Job-Fehlermeldungen in der Datenbank gespeichert werden. Wird dieser Wert nicht angegeben, wird er auf die Dauer von Tagen gesetzt.

expire_row_limit

Maximale Anzahl der auf einmal zu löschenden Zeilen in der Datenbank für die folgenden Einträge. Wenn diese Option nicht angegeben wird, werden die Zeilen ohne Begrenzung gelöscht:

  • Alarmmeldungen

  • Gesendete Alarmmeldungen

  • Alarme

  • Änderungsprotokoll

  • Wartungen

  • Benutzer

Manuelles vollständiges Neuschreiben der Tabelle

Autovakuum löscht jedoch noch nicht die Tabellendaten, die von den Benutzern gelöscht wurden. Um ungenutzte Daten zu löschen und alle Tabellen neu zu schreiben, muss die Funktion vacuum full verwendet werden. Die Funktion vacuum full kann nur ausgeführt werden, wenn der Dienst eranger-server gestoppt ist.

Führen Sie das folgende Skript aus, um ein Vacuum Full durchzuführen:

/opt/eranger/bin/eranger-db-housekeeping.sh
 *** ATTENTION! This script will block eranger-server for a very long time!
 *** Do you really want to execute this script on database "ng" ? Yy/[Nn]: n

Beantworten Sie die obige Frage mit y. Der Vorgang dauert mehrere Stunden, abhängig von der Menge der in der Datenbank gespeicherten Daten.

Es wird empfohlen, diesen Vorgang mindestens einmal im Jahr durchzuführen.