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=/backupdisk/postgres

[ ! $DIR ] && mkdir -p $DIR || :

# rotate dei vecchi dump
savelog -l -c 7 $DIR/*.dump

# dump degli utenti
echo `date` Dumping global data
pg_dumpall -g -c > $DIR/dumpall_data.dump


# dump dei database, uno alla volta, escludendo template0 che non e` accessibile
# e in ogni caso non serve
LIST=$(psql -t -c "select datname from pg_database order by datname" -d template1 | grep -vE 'template0')

for d in $LIST
do
  echo `date` Dumping database $d
  pg_dump --create  --compress=6  --file=$DIR/$d.dump $d
done
echo `date` Done

LinuxDebian/Postgres (last edited 2012-03-07 12:15:40 by Kurgan)