Documentazione su Postgres

E` poca, ma io non sono un grosso esperto di postgres. Speriamo almeno che sia corretta.

Backup dei database

Scopiazzando un po`, ho messo assieme questo scriptino di backup che dovrebbe funzionare con Postgres 7 e 8. Lo scopo e` fare dei dump delle tables singolarmente, in modo da poterne restorare una sola in caso non di disastro totale (perdita del disco) ma di corruzione di un singolo database. Comunque, siccome nel backup ci sono tutte le tables e anche i dati degli utenti e dei permessi, questo puo` anche essere usato per un restore "da zero", credo. Comunque vale la pena, per un restore da zero programmato (per dire, cambio di server) vedere pg_dumpall.

Questo script deve essere eseguito dall'utente postgres, il quale deve avere il permesso di scrivere files nella directory di backup. Perche` funzioni in automatico occorre che in locale l'utente postgres non abbia bisogno di password ("ident sameuser" o simili). Altrimenti occorre modificarlo un po`.

# dove metto i backup:
DIR=/var/backups/postgres

# creo la directory se manca
[ ! $DIR ] && mkdir -p $DIR || :

# creo un elenco dei database da dumpare
LIST=$(psql -l | awk '{ print $1}' | grep -vE '^-|^List|^Name|template[0|1]|^\([0-9]*')

# salvo i vecchi dump con savelog
savelog -c 2 -l  $DIR/*.dump.gz > /dev/null
savelog -c 2 -l  $DIR/globals.dump > /dev/null

# dumpo i database
for d in $LIST
do
 pg_dump $d | gzip -c > $DIR/$d.dump.gz
done

# dumpo i dati degli utenti, permessi, eccetera
pg_dumpall -g > $DIR/globals.dump