start - Ubicación predeterminada de la base de datos PostgreSQL en Linux
instalar postgresql en debian (5)
¿Cuál es el directorio predeterminado donde PostgreSQL mantendrá todas las bases de datos en Linux?
Conéctese a una base de datos y ejecute el comando:
SHOW data_directory;
Más información:
https://www.postgresql.org/docs/9.4/static/sql-show.html https://www.postgresql.org/docs/9.4/static/runtime-config-file-locations.html
El " directorio donde postgresql mantendrá todas las bases de datos " (y configuración) se llama "directorio de datos" y corresponde a lo que PostgreSQL llama (un poco confuso) un " clúster de base de datos ", que no está relacionado con la informática distribuida, solo significa un grupo de bases de datos y objetos relacionados gestionados por un servidor PostgreSQL.
La ubicación del directorio de datos depende de la distribución. Si instala desde el origen, el valor predeterminado es /usr/local/pgsql/data
:
En términos de sistema de archivos, un clúster de base de datos será un único directorio en el que se almacenarán todos los datos. Llamamos a esto el directorio de datos o el área de datos. Depende completamente de usted dónde elige almacenar sus datos. No hay ningún valor predeterminado, aunque las ubicaciones como / usr / local / pgsql / data o / var / lib / pgsql / data son populares. ( ref )
Además, una instancia de un servidor PostgreSQL en ejecución está asociada a un clúster; la ubicación de su directorio de datos puede pasarse al daemon del servidor (" postmaster " o " postgres ") en la opción de línea de comando -D
, o por la variable de entorno PGDATA
(generalmente en el ámbito del usuario en ejecución, generalmente postgres
). Por lo general, puede ver el servidor en ejecución con algo como esto:
[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
Tenga en cuenta que es posible, aunque no muy frecuente, ejecutar dos instancias del mismo servidor PostgreSQL (mismos binarios, diferentes procesos) que sirven para diferentes "clústeres" (directorios de datos). Por supuesto, cada instancia escucharía en su propio puerto TCP / IP.
En Centos 6.5 / PostgreSQL 9.3:
Cambie el valor de "PGDATA=/var/lib/pgsql/data"
a la ubicación que desee en el archivo de script inicial /etc/init.d/postgresql
.
Recuerda chmod 700
y chown postgres:postgres
a la nueva ubicación y tú eres el jefe.
Predeterminado en Debian 8.1 y PostgreSQL 9.4 después de la instalación con el administrador de paquetes 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
así que aparentemente /var/lib/postgresql/9.4/main
.
/var/lib/postgresql/[version]/data/
Al menos en Gentoo Linux y Ubuntu 14.04 de forma predeterminada.
Puedes encontrar postgresql.conf
y mirar el param data_directory
. Si se comenta, entonces el directorio de la base de datos es el mismo que este directorio de archivos de configuración.