Где хранятся файлы для базы данных PostgreSQL?
Где PostgreSQL хранит базу данных?
Ответ 1
Чтобы узнать, где находится каталог данных, используйте этот запрос.
show data_directory;
Чтобы просмотреть все параметры времени выполнения, используйте
show all;
Вы можете создавать табличные пространства для хранения объектов базы данных в других частях файловой системы. Чтобы просмотреть табличные пространства, которые могут отсутствовать в этом каталоге данных, используйте этот запрос.
SELECT * FROM pg_tablespace;
Ответ 2
В Windows7 все базы данных относятся к числу в файле с именем pg_database
под C:\Program Files (x86)\PostgreSQL\8.2\data\global
. Затем вы должны искать имя папки по этому номеру в C:\Program Files (x86)\PostgreSQL\8.2\data\base
. Это содержимое базы данных.
Ответ 3
Откройте pgAdmin и перейдите в "Свойства" для конкретной базы данных. Найдите OID, а затем откройте каталог
<POSTGRESQL_DIRECTORY>/data/base/<OID>
Должны быть ваши файлы DB.
Ответ 4
Под моей установкой Linux он находится здесь: /var/lib/postgresql/8.x/
Вы можете изменить его с помощью initdb -D "c:/mydb/"
Ответ 5
Как указано в "местоположении по умолчанию базы данных PostgreSQL в Linux, под Linux вы можете узнать, используя следующую команду:
ps aux | grep postgres | grep -- -D
Ответ 6
Расположение определенных таблиц/индексов можно настроить с помощью TABLESPACE:
CREATE TABLESPACE dbspace LOCATION '/data/dbs';
CREATE TABLE something (......) TABLESPACE dbspace;
CREATE TABLE otherthing (......) TABLESPACE dbspace;
Ответ 7
В Mac: /Library/PostgreSQL/9.0/data/base
Невозможно ввести каталог, но вы можете посмотреть содержимое через: sudo du -hc data
Ответ 8
Postgres хранит данные в файлах в своем каталоге данных. Выполните следующие шаги, чтобы перейти к базе данных и ее файлам:
База данных, соответствующая файлу таблицы postgresql, является каталогом. Местоположение всего каталога данных можно получить, запустив SHOW data_directory
.
в операционной системе UNIX (например: Mac) /Library/PostgreSQL/9.4/data
Перейдите в базовую папку в каталоге данных, где есть все папки базы данных: /Library/PostgreSQL/9.4/data/base
Найдите имя папки базы данных, запустив (дает целое число. Это имя папки базы данных):
SELECT oid from pg_database WHERE datname = <database_name>;
Найдите имя файла таблицы, запустив (дает целое число. Это имя файла):
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>;
Это двоичный файл. Данные файла, такие как размер и время создания, могут быть получены как обычно. Для получения дополнительной информации прочитайте этот поток SO
Ответ 9
Все уже ответили, но только для последних обновлений. Если вы хотите знать, где находятся все файлы конфигурации, запустите эту команду в оболочке
SELECT name, setting FROM pg_settings WHERE category = 'File Locations';
Ответ 10
Держу пари, что вы задаете этот вопрос, потому что вы пробовали pg_ctl start
и получили следующую ошибку:
pg_ctl: не указан каталог базы данных и переменная среды PGDATA unset
Другими словами, вы ищете каталог, который будет помещен после -D
в команду pg_ctl start
.
В этом случае каталог, который вы ищете, содержит эти файлы.
PG_VERSION pg_dynshmem pg_multixact
pg_snapshots pg_tblspc postgresql.conf
base pg_hba.conf pg_notify
pg_stat pg_twophase postmaster.opts
global pg_ident.conf pg_replslot
pg_stat_tmp pg_xlog postmaster.pid
pg_clog pg_logical pg_serial
pg_subtrans postgresql.auto.conf server.log
Вы можете найти его, указав любой из файлов и каталогов выше, используя поиск, предоставляемый вашей ОС.
Например, в моем случае (HomeBrew установить на Mac OS X) эти файлы находятся в /usr/local/var/postgres
. Для запуска сервера я печатаю:
pg_ctl -D /usr/local/var/postgres -w start
... и он работает.
Ответ 11
В Windows каталог PGDATA, который описывают документы PostgresSQL, находится где-то вроде C:\Program Files\PostgreSQL\8.1\data
. Данные для конкретной базы данных находятся (например) в C:\Program Files\PostgreSQL\8.1\data\base\100929
, где, как мне кажется, 100929 - это номер базы данных.
Ответ 12
Picmate ответ правильный. на windows расположение основной папки БД (по крайней мере на моей установке)
C:\PostgreSQL\9.2\data\base\
а не в программных файлах.
его 2 сценария, даст вам точный каталог/файл вам нужно:
SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>;
мой находится в datname 16393 и relfilenode 41603