Расположение базы данных PostgreSQL по умолчанию в Linux - PullRequest
100 голосов
/ 09 июня 2010

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

Ответы [ 6 ]

118 голосов
/ 09 июня 2010

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

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

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

Кроме того, экземпляр работающего сервера PostgreSQL связан с одним кластером; местоположение его каталога данных может быть передано демону сервера (« postmaster » или « 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.

56 голосов
/ 09 июня 2010
/var/lib/postgresql/[version]/data/

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

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

15 голосов
/ 14 июля 2015

По умолчанию в 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.

14 голосов
/ 26 ноября 2017

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

SHOW data_directory;

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

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

9 голосов
/ 28 мая 2014

В Centos 6.5 / PostgreSQL 9.3:

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

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

0 голосов
/ 11 января 2019

Я думаю, что лучший способ - запросить pg_setting представление:

 select s.name, s.setting, s.short_desc from pg_settings s where s.name='data_directory';

Вывод:

      name      |        setting         |            short_desc
----------------+------------------------+-----------------------------------
 data_directory | /var/lib/pgsql/10/data | Sets the server's data directory.
(1 row)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...