Wartung der Datenbank

Tägliche automatische Wartung

Standardmäßig ist einer der für den Benutzer „eranger” installierten Cronjobs für die Datenbankpflege zuständig:

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

Er reorganisiert die Daten täglich, indem er die PostgreSQL-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=

Parametername

Beschreibung

expire_days_long

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

  • Statusverlauf

  • Werteverlauf

  • Alarmmeldungen

  • Gesendete Alarmmeldungen

  • Alarme

  • Änderungsprotokoll

  • Wartung (Endzeit)

  • Benutzer (letzter Zugriff)

  • Schwellenwert-Vorhersagedaten

expire_days_short

Legt die Anzahl der Tage fest, die Fehlermeldungen zu Aufträgen in der Datenbank gespeichert werden. Wenn diese Angabe fehlt, wird eine Dauer von Tagen festgelegt.

expire_row_limit

Maximale Anzahl von Zeilen, die gleichzeitig aus der Datenbank für die folgenden Einträge gelöscht werden können. Wenn nichts angegeben ist, werden Zeilen ohne Begrenzung gelöscht:

  • Alarmmeldungen

  • Gesendete Alarmmeldungen

  • Alarme

  • Änderungsprotokoll

  • Wartung

  • Benutzer

Manuelles vollständiges Neuschreiben der Tabelle

Allerdings löscht autovacuum noch nicht tatsächlich die von den Benutzern gelöschten Tabellendaten. Um ungenutzte Daten zu löschen und alle Tabellen neu zu schreiben, muss die Funktion vacuum full verwendet werden. Ein vacuum full kann nur ausgeführt werden, wenn der eranger-Server-Dienst gestoppt ist.

Um „vacuum full“ auszuführen, führen Sie das folgende Skript aus:

/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 je nach Datenmenge in der Datenbank mehrere Stunden.

Es wird empfohlen, diesen Vorgang mindestens einmal jährlich durchzuführen.