Restaurer une base de donnée PostgreSQL depuis une sauvegarde de fichiers

Testé sur debian Jessie et PostgreSQL 9.4

Le moyen le plus sûr pour sauvegarder une base de donnée est d’effectuer régulièrement des dumps avec la commande pg_dump.

Néanmoins, il est possible d’accéder aux données d’une base à partir des fichiers contenus dans le dossier /var/lib/postgres/9.4/main

Restaurer une base de donnée depuis les fichiers

Prérequis :
– Avoir une copie du dossier /var/lib/postgres/9.4/main

Dans l’idéal, démarrer un OS identique à la version hôte de la base à restaurer. Cela dit, cela à bien fonctionner pour restaurer des données de PostgreSQL initialement installé sur debian 8 Jessie sur une debian 9 Stretch.

# Installer postgresql-9.4 et les dependances de votre base de données.
su
apt-get install postgresql-9.4
apt-get install postgis
apt-get install postgresql-9.4-postgis-2.3

# Stopper PostgreSQL
service postgresql stop

Modifier le fichier de configuration pour pointer vers votre sauvegarde : dupliquer la ligne data_directory, commenter la version originale et modifier le chemin vers votre dossier à restaurer.

nano /etc/postgresql/9.4/main/postgresql.conf

Vous obtenez

# data_directory = '/var/lib/postgresql/9.4/main' # use data in another directory
data_directory = '/media/backups/var/lib/postgresql/9.4/main'

Changer le propriétaire et les droits de votre dossier à restaurer et lancer PostegreSQL

chown postgres /media/backups/var/lib/postgresql/9.4/main
chmod 700 /media/backups/var/lib/postgresql/9.4/main

service postgresql start

Connectez-vous en tant qu’utilisation

postgres

et lister les bases de données accessibles.

su postgres
psql -l # lister les bases disponibles ainsi que leurs attributs

Normalement, vous devriez voir vos bases de données à restaurer. Il ne reste plus qu’a faire un dump propre des bases afin de pouvoir les remonter sur un autre serveur fonctionnel.

pg_dump -Fc nom_bdd > database.bak # dump en .bak
pg_dump nom_bdd > database.sql # dump en fichier texte .sql

Ecrire un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.