Emplacement par défaut de la base de données PostgreSQL sur Linux
Quel est le répertoire par défaut où PostgreSQL conservera toutes les bases de données sous Linux?
5 réponses
le" répertoire où postgresql conservera toutes les bases de données "(et la configuration) est appelé" répertoire de données "et correspond à ce que PostgreSQL appelle (un peu confusément) un" cluster de bases de données ", qui n'est pas lié à l'informatique distribuée, il signifie simplement un groupe de bases de données et d'objets connexes gérés par un serveur PostgreSQL.
L'emplacement du répertoire de données dépend de la distribution. Si vous installez de source, la valeur par défaut est /usr/local/pgsql/data
:
en termes de système de fichiers, une base de données cluster sera un répertoire unique sous lequel toutes les données seront stockées. Nous l'appelons le répertoire de données ou zone de données. Il est complètement à vous lorsque vous choisissez de stocker vos données. Il n'y a pas de défaut, bien que des endroits tels que les /usr / local/pgsql / data ou / var/lib/pgsql / les données sont populaires. ( ref )
en outre, une instance d'un serveur PostgreSQL en cours d'exécution est associée à un cluster; l'emplacement de son répertoire de données peut être passé au démon serveur (" postmaster " ou " postgres ") dans l'option de ligne de commande -D
, ou par la variable d'environnement PGDATA
(habituellement dans le champ d'application de l'utilisateur courant, typiquement postgres
). Vous pouvez habituellement voir le serveur courant avec quelque chose comme ceci:
[root@server1 ~]# ps auxw | grep postgres | grep -- -D
postgres 1535 0.0 0.1 39768 1584 ? S May17 0:23 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
notez Qu'il est possible, bien que peu fréquent, d'exécuter deux instances du même serveur PostgreSQL (mêmes binaires, processus différents) qui servent des "clusters" différents (répertoires de données). Bien sûr, chaque instance écouterait sur son propre port TCP/IP.
/var/lib/postgresql/[version]/data/
au moins dans Gentoo Linux et Ubuntu 14.04 par défaut.
vous pouvez trouver postgresql.conf
et regarder param data_directory
. Si elle est commentée ensuite répertoire de base de données est le même que ce fichier de configuration du répertoire.
par défaut dans Debian 8.1 et PostgreSQL 9.4 après l'installation avec le gestionnaire de paquets apt-get
ps auxw | grep postgres | grep -- -D
postgres 17340 0.0 0.5 226700 21756 ? S 09:50 0:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
donc apparemment /var/lib/postgresql/9.4/main
.
Se connecter à une base de données et exécuter la commande:
SHOW data_directory;
plus d'informations:
https://www.postgresql.org/docs/9.4/static/sql-show.html https://www.postgresql.org/docs/9.4/static/runtime-config-file-locations.html
On Centos 6.5/PostgreSQL 9.3:
Change la valeur de "PGDATA=/var/lib/pgsql/data"
à n'importe quel endroit que vous voulez dans le fichier de script initial /etc/init.d/postgresql
.
souvenez-vous de chmod 700
et chown postgres:postgres
au nouvel emplacement et vous êtes le patron.