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

вопрос создан в Thu, Jun 23, 2016 12:00 AM

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

    
100
  1. Другой поток, где обсуждались те же вопросы. stackoverflow.com/questions/1137060/…
    2013-06-14 08: 58: 26Z
  2. 2019-02-09 20: 21: 49Z
6 ответов                              6                         

« каталог, в котором 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.

    
118
2016-06-23 16: 21: 03Z
/var/lib/postgresql/[version]/data/

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

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

    
55
2014-04-23 11: 26: 43Z
  1. Это будет зависеть от дистрибутива, все они делают это немного по-разному. Если вы можете подключиться к системе, использование «SHOW data_directory», вероятно, самый простой способ.
    2010-06-09 12: 03: 34Z
  2. @ MagnusHagander это ответ, вы не делаете этот комментарий ответом. Это хорошо сработало для меня.
    2013-06-14 08: 57: 59Z
  3. в Gnome я вижу то же самое здесь /var/lib/8.1/postgresql
    2014-04-30 11: 47: 59Z
  4. Для меня это '/var/lib/postgresql/9.3/main'
    2015-02-26 20: 27: 35Z
  5. для Centos 7, путь postgres 9.3 /var/lib/pgsql/9.3
    2015-12-17 13: 02: 20Z

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

    
15
2015-07-21 05: 51: 24Z

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

SHOW data_directory;

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

https://www.postgresql.org/docs/current /sql-show.html https://www.postgresql.org/docs/ток /время выполнения-конфиг-файл-locations.html

    
14
2019-01-04 00: 30: 18Z

В Centos 6.5 /PostgreSQL 9.3:

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

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

    
9
2016-06-23 16: 22: 58Z

Я думаю, что лучший способ - запросить представление 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)
    
0
2019-01-11 13: 49: 25Z
источник размещен Вот