{{tag>sysadmin dbadmin postgres postgresql}} ====== PostgreSQL: Déplacer le répertoire contenant les bases ====== Le répertoire racine contenant les données de postgres est définit par la valeur de la variable **data_directory** présente dans le fichier de configuration **/etc/postgresql/9.6/main/postgresql.conf** data_directory = '/var/lib/postgresql/9.6/main' Pour s'assurer que le serveur en cours d’exécution utilise ce répertoire, on peut utiliser le client postgres pour consulter la configuration effective: su postgres # Lancer le client postgres en mode interactif psql SHOW data_directory; \q Une fois le répertoire identifié, on peut arrêter le serveur systemctl stop postgresql systemctl status postgresql Déplacer les dossier via rsync afin de conserver les droits rsync -av /var/lib/postgresql /new/path/ Ici le dossier **/var/lib/postgresql** et son contenu seront recréés à l'identique dans le répertoire /new/path/ Renommer l'ancien répertoire temporairement afin de conserver une copie en cas de problème mv /var/lib/postgresql/9.6/main /var/lib/postgresql/9.6/main.backup Modifier le fichier de configuration: data_directory = '/new/path/postgresql/9.6/main' Relancer le serveur systemctl start postgresql systemctl status postgresql Si tout fonctionne normalement, le serveur est en cours d’exécution. On peut comme en début de procédure consulter la nouvelle valeur effective de data_directory à l'aide du client **psql**. Le dossier d'origine peut être supprimé: rm -fr /var/lib/postgresql/9.6/main.backup ===== Références ===== * https://www.digitalocean.com/community/tutorials/how-to-move-a-postgresql-data-directory-to-a-new-location-on-ubuntu-16-04