Расположение базы данных PostgreSQL по умолчанию в Linux

каков каталог по умолчанию, в котором PostgreSQL будет хранить все базы данных в Linux?

5 ответов


в "каталог, где postgresql будет хранить все базы данных "(и конфигурация) называется " каталог данных "и соответствует тому, что PostgreSQL называет (немного смущенно)"кластер базы данных", который не связан с распределенными вычислениями, это просто группа баз данных и связанных объектов, управляемых сервером PostgreSQL.

расположение каталога данных зависит от распределения. Если вы устанавливаете из источника, по умолчанию /usr/local/pgsql/data:

в терминах файловой системы база данных кластер будет представлять собой единый каталог под которой будут храниться все данные. Мы называем это каталогом данных или область данных. Это полностью зависит от вас где вы решите хранить свои данные. По умолчанию нет, хотя такие места, как / usr / local/pgsql / data или /var/lib/pgsql / data пользуются популярностью. (ref)

кроме того, связан экземпляр запущенного сервера PostgreSQL в один кластер; расположение его каталога данных может быть передано демону сервера ("почт" или " postgres") в -D опция командной строки или PGDATA переменная среды (обычно в области работающего пользователя, обычно postgres). Обычно вы можете увидеть работающий сервер с чем-то вроде этого:

[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

обратите внимание, что можно, хотя и не очень часто, запускать два экземпляра одного и того же сервера PostgreSQL (тот же двоичные файлы, разные процессы), которые обслуживают разные "кластеры" (каталоги данных). Конечно, каждый экземпляр будет прослушивать свой собственный порт TCP/IP.


/var/lib/postgresql/[version]/data/

по крайней мере в Gentoo Linux и Ubuntu 14.04 по умолчанию.

вы можете найти postgresql.conf и посмотрите на param data_directory. Если он прокомментирован, то каталог базы данных совпадает с этим каталогом файла конфигурации.


по умолчанию в Debian 8.1 и PostgreSQL 9.4 после установки с помощью менеджера пакетов 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

видимо /var/lib/postgresql/9.4/main.


подключитесь к базе данных и выполните команду:

SHOW data_directory;

дополнительная информация:

https://www.postgresql.org/docs/9.4/static/sql-show.html https://www.postgresql.org/docs/9.4/static/runtime-config-file-locations.html


На Centos 6.5 / PostgreSQL 9.3:

изменить значение "PGDATA=/var/lib/pgsql/data" в любое место, которое вы хотите в исходном файле сценария /etc/init.d/postgresql.

не забудьте chmod 700 и chown postgres:postgres на новое место и вы босс.