Maintenance de la base de données

Maintenance automatique quotidienne

Par défaut, l'une des tâches cron installées pour l'utilisateur eranger est chargée 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 autovacuum de PostgreSQL afin que les données soient accessibles plus rapidement.

La configuration s'effectue dans la configuration du SKOOR Server :

/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

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 des états

  • Historique des valeurs

  • Messages d'alarme

  • Messages d'alarme envoyés

  • Alarmes

  • Journal des modifications

  • Maintenance (heure de fin)

  • Utilisateurs (dernier accès)

  • Données de prévision du seuil

expire_days_short

Définit le nombre de jours pendant lesquels les messages d'erreur liés aux tâches sont conservés dans la base de données. Si cette option est omise, la valeur par défaut est de jours.

expire_row_limit

Nombre maximal de lignes à supprimer en une seule fois de la base de données pour les entrées suivantes. Si cette option est omise, les lignes seront supprimées sans limite.

  • Messages d'alarme

  • Messages d'alarme envoyés

  • Alarmes

  • Journal des modifications

  • Maintenance

  • Utilisateurs

Réécriture manuelle complète de la table

Cependant, autovacuum ne supprime pas encore 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, il faut utiliser la fonction vacuum full. Une fonction vacuum full ne peut être exécutée que lorsque le service eranger-server est arrêté.

Pour exécuter une fonction 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ération durera plusieurs heures, en fonction de la quantité de données stockées dans la base de données.

Il est recommandé de l'exécuter au moins une fois par an.