PostgreSQL : déplacer le répertoire de données
Dans ce billet nous allons voir comment déplacer simplement le répertoire contenant les données de PostgreSQL dans un autre répertoire se situant éventuellement sur une autre partition.
Premièrement, pourquoi vouloir faire une chose pareille ?!? Le cas de figure est classique, on installe PostgreSQL sur une partition système, on travaille avec pendant un certain temps, la taille des données augmente et un jour on se retrouve avec une partition système full à cause des bases de données PostgreSQL !
Cette technique permet donc de déplacer l’ensemble des données dans un autre dossier, elle a été testée avec PostgreSQL 8.1 sur une suse (mais il y n’y a pas de raison que cela ne fonctionne pas sur une distribution plus classique).
- Stopper le serveur PostgreSQL : /etc/init.d/postgresql stop
- Copier les données dans le nouveau répertoire : cp -R /var/lib/pgsql/data /nouveau_repertoire/pgsql/
- Faire une backup des données actuelles : mv /var/lib/pgsql/data /var/lib/pgsql/data.old
- Créer un lien symbolique vers le nouveau répertoire : ln -s /nouveau_repertoire/pgsql/ /var/lib/pgsql/data
- Donner les droits de propriété a PostgreSQL (très important, aussi, utilisez le nom exact de votre utilisateur PostgreSQL) : chown -R postgres:postgres /nouveau_repertoire/pgsql/
- Relancer PostgreSQL et normalement le tour et joué ! /etc/init.d/postgresql start
Si jamais ce n’est pas le cas, vous disposez d’une backup dans data.old, stopper le serveur, supprimez alors le lien symbolique et renommez data.old en data, relancez le serveur et tentez une autre approche !
PostgreSQL