Maintenance de la base de données

Maintenance automatique quotidienne

Par défaut, l'un des cronjobs installés pour l'utilisateur eranger est responsable de la maintenance de la base de données :

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

Il réorganise quotidiennement les données en exécutant la fonction PostgreSLQ autovacuum afin que les données soient accessibles plus rapidement.

La configuration se fait dans la configuration du serveur SKOOR :

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

Paramètres avec valeurs par défaut :

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

Nom du paramètre

Nom du paramètre Description

expire_days_long

Définit le nombre de jours pendant lesquels les entrées suivantes de la base de données sont conservées :

  • Historique d'état

  • Historique des valeurs

  • Messages d'alarme

  • Messages d'alarme envoyés

  • Alarmes

  • Journal des modifications

  • Maintenances (heure de fin)

  • Utilisateurs (dernier accès)

  • Données de prédiction du délai

expire_days_short

Définit le nombre de jours pendant lesquels les messages d'erreur des travaux sont conservés dans la base de données. S'il est omis, il sera fixé à jours.

expire_row_limit

Nombre maximal de lignes à supprimer en une seule fois de la base de données pour les entrées suivantes. En cas d'omission, les lignes seront supprimées sans limite :

  • Messages d'alarme

  • Messages d'alarme envoyés

  • Alarmes

  • Journal des modifications

  • Maintenances

  • Utilisateurs

Réécriture manuelle complète des tables

Cependant, autovacuum ne supprime pas encore réellement les données des tables qui ont été supprimées par les utilisateurs. Pour supprimer les données inutilisées et réécrire toutes les tables, la fonction vacuum full doit être utilisée. Un vacuum full ne peut être exécuté que lorsque le service eranger-server est arrêté.

Pour lancer un vacuum full, exécutez le script suivant :

/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

Répondez "y" à la question ci-dessus. L'opérateur fonctionnera pendant de nombreuses heures, en fonction de la quantité de données stockées dans la base de données.

Il est recommandé d'exécuter cette opération au moins une fois par an.