Каков каталог по умолчанию, где PostgreSQL сохранит все базы данных по Linux?
Каталог "где postgresql будет хранить все базы данных" (и конфигурацию) называется "каталог данных" и соответствует тому, что PostgreSQL называет (немного путано) "кластером баз данных", что не имеет отношения к распределенным вычислениям, а просто означает группу баз данных и связанных с ними объектов, управляемых сервером PostgreSQL.
Расположение каталога данных зависит от дистрибутива. Если вы устанавливаете из исходного кода, по умолчанию используется /usr/local/pgsql/data
:
В терминах файловой системы, кластер баз данных кластер будет представлять собой единый каталог в котором будут храниться все данные. Мы называем это каталогом данных или область данных. Это полностью зависит от вас где вы решите хранить свои данные. По умолчанию не существует, хотя такие места, как /usr/local/pgsql/data или /var/lib/pgsql/data являются популярными. (ref)
Кроме того, экземпляр работающего сервера 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.
/var/lib/postgresql/[version]/data/
По крайней мере, в Gentoo Linux и Ubuntu 14.04 по умолчанию.
Вы можете найти postgresql.conf
и посмотреть на параметр data_directory
. Если он закомментирован, то каталог базы данных совпадает с этим каталогом файла конфигурации.