Manutenzione del database

Manutenzione automatica giornaliera

Per impostazione predefinita, uno dei cronjob installati per l'utente eranger è responsabile della gestione del database:

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

Riorganizza i dati quotidianamente eseguendo la funzione autovacuum di PostgreSQL, in modo che i dati siano accessibili più rapidamente.

La configurazione viene effettuata nella configurazione del SKOOR Server:

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

Parametri con valori predefiniti:

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

Nome del parametro

Descrizione

expire_days_long

Imposta il numero di giorni di conservazione delle seguenti voci del database:

  • Cronologia dello stato

  • Cronologia valori

  • Messaggi di allarme

  • Messaggi di allarme inviati

  • Allarmi

  • Registro delle modifiche

  • Manutenzione (ora di fine)

  • Utenti (ultimo accesso)

  • Dati di previsione della soglia

expire_days_short

Imposta il numero di giorni per cui i messaggi di errore relativi ai lavori vengono conservati nel database. Se omesso, verrà impostato su giorni.

expire_row_limit

Numero massimo di righe da eliminare contemporaneamente dal database per le seguenti voci. Se omesso, le righe saranno eliminate senza limiti:

  • Messaggi di allarme

  • Messaggi di allarme inviati

  • Allarmi

  • Registro delle modifiche

  • Manutenzione

  • Utenti

Riscrittura manuale completa della tabella

Tuttavia, autovacuum non elimina ancora effettivamente i dati delle tabelle che sono stati eliminati dagli utenti. Per eliminare i dati inutilizzati e riscrivere tutte le tabelle, è necessario utilizzare la funzione vacuum full. Un vacuum full può essere eseguito solo quando il servizio eranger-server è arrestato.

Per eseguire un vacuum full, eseguire il seguente script:

/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

Rispondere y alla domanda sopra riportata. L'operazione richiederà diverse ore, a seconda della quantità di dati memorizzati nel database.

Si consiglia di eseguire questa operazione almeno una volta all'anno.