lundi 5 mars 2012

Sauvegarder tes bases PostgreSQL...

il faut en premier lieu que tu crées un fichier pour le script de sauvegarde :
vi /root/psqlbackup.sh
et y copier coller le code suivant :
#!/bin/bash
# Par David H. 05.03.2012

OUTPUTDIR="/var/lib/postgresql/backups/"
PG_DUMP="$(which pg_dump)"
PSQL="$(which psql)"
GZIP="$(which gzip)"

NOW="$(date +"%H00.%F")"

[ ! -d $OUTPUTDIR ] && mkdir -p $OUTPUTDIR || :

find $OUTPUTDIR -type f -mtime +7 -exec rm {} \;

DATABASES=$(psql -Atc "select d.datname as name from pg_catalog.pg_database d;" | grep -v 'template0')

for db in $DATABASES
do
#echo $db
$PG_DUMP -Ft -b $db > $OUTPUTDIR$db.$NOW.tar
done

Pourquoi rajouter l'instruction "grep -v 'template0'" ?
Les fichiers de sauvegarde produits par pg_dump sont relatifs à template0. Par conséquent le système retourne l'erreur suivante :
FATAL 1: Database "template0" is not currently accepting connections
N'oublie pas que comme d'hab tu dois rendre ton script executable pour pouvoir l'exploiter
sudo chown root:root /root/psqlbackup.sh
sudo chmod 755 /root/psqlbackup.sh

Tu peux retrouver un script similaire relatif à la sauvegarde des bases MySQL a l'adresse suivante :
http://ubuntout.blogspot.com/2010/12/comment-sauvegarder-tes-bases-mysql.html

Pour restaurer la base ainsi sauvegardée, il suffit de taper la commande suivante :
pg_restore -d nom_de_base /chemin/vers/la/base_archivee.tar

Aucun commentaire:

Enregistrer un commentaire