Где PostgreSQL хранит базу данных?
Где хранятся файлы для базы данных PostgreSQL?
- Понимание размеров строк Postgres
- Может ли столбцы столбцов индекса PostgreSQL?
- Как увеличить максимальные соединения в postgres?
- Проблема восстановления базы данных Heroku
- Позорное java.sql.SQLException: не найдено подходящего драйвера
- PostgreSQL 9.2 row_to_json () с вложенными объединениями
- Моделирование MySQL ORDER BY FIELD () в Postgresql
- Вычисление и сохранение пространства в PostgreSQL
Чтобы узнать, где находится каталог данных, используйте этот запрос.
show data_directory;
Чтобы просмотреть все параметры времени выполнения, используйте
show all;
Вы можете создавать табличные пространства для хранения объектов базы данных в других частях файловой системы. Чтобы увидеть табличные пространства, которые могут отсутствовать в этом каталоге данных, используйте этот запрос.
SELECT * FROM pg_tablespace;
В Windows7 все базы данных относятся к числу в файле с именем pg_database
C:\Program Files (x86)\PostgreSQL\8.2\data\global
. Затем вы должны искать имя папки по этому номеру в папке C:\Program Files (x86)\PostgreSQL\8.2\data\base
. Это содержание базы данных.
Откройте pgAdmin и перейдите в «Свойства» для конкретной базы данных. Найти OID, а затем открыть каталог
/data/base/
Должны быть файлы DB.
Под моей установкой Linux он находится здесь: /var/lib/postgresql/8.x/
Вы можете изменить его с помощью initdb -D "c:/mydb/"
Как показано в разделе « Расположение базы данных PostgreSQL по умолчанию в Linux », под Linux вы можете узнать, используя следующую команду:
ps aux | grep postgres | grep -- -D
Расположение конкретных таблиц / индексов можно настроить с помощью TABLESPACE:
CREATE TABLESPACE dbspace LOCATION '/data/dbs'; CREATE TABLE something (......) TABLESPACE dbspace; CREATE TABLE otherthing (......) TABLESPACE dbspace;
На Mac: /Library/PostgreSQL/9.0/data/base
Каталог не может быть введен, но вы можете посмотреть содержимое через: sudo du -hc data
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 = ;
Найдите имя файла таблицы, запустив (дает целое число. Это имя файла):
SELECT relname, relfilenode FROM pg_class WHERE relname = ;
Это двоичный файл. Данные файла, такие как размер и время создания, могут быть получены как обычно. Для получения дополнительной информации прочитайте эту SO-нить
Готов поспорить, что вы задаете этот вопрос, потому что вы попытались pg_ctl start
и получили следующую ошибку:
pg_ctl: не указан каталог базы данных и переменная среды PGDATA не установлена
Другими словами, вы ищете каталог, который будет помещен после -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
… и это работает.
В Windows каталог PGDATA, который описываются документами PostgresSQL, находится где-то вроде C:\Program Files\PostgreSQL\8.1\data
. Данные для конкретной базы данных находятся под (например) C:\Program Files\PostgreSQL\8.1\data\base\100929
, где, я думаю, 100929 – это номер базы данных.
Все уже ответили, но только для последних обновлений. Если вы хотите знать, где находятся все файлы конфигурации, запустите эту команду в оболочке
SELECT name, setting FROM pg_settings WHERE category = 'File Locations';