Где PostgreSQL хранит базу данных? | CODE Q&A [русский]

Чтобы узнать, где находится каталог данных, используйте этот запрос.

Чтобы просмотреть все параметры времени выполнения, используйте

Вы можете создавать табличные пространства для хранения объектов базы данных в других частях файловой системы.

PostgreSQL в Linux — где физически хранит пользовательские базы ?

Чтобы увидеть табличные пространства, которые могут отсутствовать в этом каталоге данных, используйте этот запрос.


Откройте pgAdmin и перейдите в «Свойства» для конкретной базы данных. Найти OID, а затем открыть каталог

Должны быть файлы DB.


Как показано в разделе « Расположение базы данных PostgreSQL по умолчанию в Linux », под Linux вы можете узнать, используя следующую команду:


На Mac:

Каталог не может быть введен, но вы можете посмотреть содержимое через:


В Windows каталог PGDATA, который описываются документами PostgresSQL, находится где-то вроде . Данные для конкретной базы данных находятся под (например) , где, я думаю, 100929 — это номер базы данных.


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


.

Postgres хранит данные в файлах в своем каталоге данных. Выполните следующие действия, чтобы перейти к базе данных и ее файлам:

База данных, соответствующая файлу таблицы postgresql, является каталогом. Местоположение всего каталога данных можно получить, запустив . в операционной системе UNIX (например: Mac) Перейдите в базовую папку в каталоге данных, в котором есть все папки базы данных:

Найдите имя папки базы данных, запустив (дает целое число. Это имя папки базы данных):

Найдите имя файла таблицы, запустив (дает целое число.

Это имя файла):

Это двоичный файл. Данные файла, такие как размер и время создания, могут быть получены как обычно. Для получения дополнительной информации прочитайте эту SO-нить

Готов поспорить, что вы задаете этот вопрос, потому что вы попытались и получили следующую ошибку:

pg_ctl: не указан каталог базы данных и переменная среды PGDATA не установлена

Другими словами, вы ищете каталог, который будет помещен после в команду .

В этом случае каталог, который вы ищете, содержит эти файлы.

Вы можете найти его, указав любой из файлов и каталогов выше, используя поиск, предоставляемый вашей ОС.

Например, в моем случае (установка HomeBrew в Mac OS X ) эти файлы находятся в каталоге .

PostgreSQL + 1C 8.1 — Где хранится база (как изменить путь к ней?)

Чтобы запустить сервер, я печатаю:

… и это работает.

СУБД PostgreSQL в разных операционных системах имеет практически идентичную структуру каталогов. В данной статье рассматривается стандартная структура каталогов для ОС Ubuntu 12.04.

По умолчанию PostgreSQL устанавливается в папку /var/lib/postgresql/<version>/main. Основной каталог СУБД содержит подкаталоги с пользовательскими данными и служебной информацией.

  • postmaster.opts — файл, в котором сдержится командная строка с параметрами, с помощью которой была запущена СУБД.

    На моем компьютере в этом файле хранится следующая строка

    /usr/lib/postgresql/9.3/bin/postgres "-D""/var/lib/postgresql/9.3/main""-c""config_file=/etc/postgresql/9.3/main/postgresql.conf"
  • PG_VERSION — файл, содержащий основной номер версии СУБД (к примеру, 9.3)

  • base — каталог, содержащий каталоги баз данных (по каталогу на каждую БД)

    Имена подкаталогов соответствуют OID’ам баз данных.

    root@server: /var/lib/postgresql/9.3/main/base# ls 1/ 12065/ 12070/ 16384/ 24580/
    denis=#selectoid,datnamefrompg_database; oid | datname——-+———— 1 | template1 12065 | template0 12070 | postgres 16384 | denis 24580 | t1(5 rows)
  • global — каталог, в котором хранятся глобальные таблицы (к примеру, pg_database)

  • pg_clog — каталог, в котором хранится информация о статусах транзакций.

    На каждую транзакцию выделяется 2 бита.

    Резервное копирование баз данных PostgreSQL.

    Статус транзакции может иметь следующие значения:

    • транзакция стартовала,
    • транзакция успешно завершена,
    • транзакция отменена,
    • подтранзакция успешно завершена.

    Количество хранимых транзакций ограничено параметром autovacuum_freeze_max_age (максимальное значение ~ 2 миллиарда), который в свою очередь регулирует работу автовакума. Поэтому максимальный размер файла может быть ~ 0.5 Гб максимум.

  • pg_multixact — каталог, содержащий информацию, необходимую для координации работы параллельных транзакций (используется для хранения SHARED ROW LOCKS)

  • pg_notify — каталог, в котором хранится информация для поддержки работы LISTEN/NOTIFY

  • pg_serial — каталог, содержащий информацию о завершенных последовательных (serializable) транзакциях

  • pg_snapshots — каталог, в котором хранятся экспортированные снапшоты

    Файлы создаются при вызове процедуры pg_export_snapshot() и существуют до окончания транзакции.

    Ниже представлена последовательность действий, позволяющая понять, как появляются и исчезают файлы в этом каталоге.

    Экспорт снапшота в транзакции

    В каталоге появился файл, в котором содержится информация о снапшоте

    Отмена транзакции

    Файл удален

    BEGINdenis=#SELECTpg_export_snapshot(); pg_export_snapshot——————— 00000312-1(1 row)
    root@server: /var/lib/postgresql/9.3/main/pg_snapshots# ls 00000312-1 root@server: /var/lib/postgresql/9.3/main/pg_snapshots# cat 00000312-1 xid:786 dbid:16384 iso:1 ro:0 xmin:786 xmax:786 xcnt:0 sof:0 sxcnt:0 rec:0
    denis=#rollback;ROLLBACK
    root@server: /var/lib/postgresql/9.3/main/pg_snapshots# l —-
  • pg_stat_tmp — каталог, содержащий информация необходимую для поддержания работы системы статистики.

    Сборщик статистики использует этот каталог для передачи информации другим процессам СУБД. Этот каталог может быть перемещен в оперативную память для уменьшение нагрузки на жесткий диск.

  • pg_subtrans — каталог, в котором хранится информация о подтранзакциях

  • pg_tblspc — в каталоге хранятся символьные ссылки на табличные пространства (tablespaces).

    Ниже показана последовательность действий, демонстрирующая, как в этом каталоге появляются файлы.

    Создается табличное пространство

    Получается список табличных пространств

    Для каждого пользовательского табличного пространства в каталоге создается символьная ссылка на заданный каталог, именем этой ссылки является OID этого табличного пространства.

    denis=#CREATETABLESPACEtmpLOCATION'/home/denis/1';CREATE TABLESPACE
    denis=#selectoid,spcnamefrompg_tablespace; oid | spcname——-+———— 1663 | pg_default 1664 | pg_global 27936 | tmp(3 rows)
    /var/lib/postgresql/9.3/main/pg_tblspc# ll total 8 drwx—— 2 postgres postgres 4096 Nov 4 09:51 ./ drwx—— 15 postgres postgres 4096 Nov 4 07:05 ../ lrwxrwxrwx 1 postgres postgres 13 Nov 4 09:51 27936 -> /home/denis/1/
  • pg_twophase — каталог содержит информацию о подготовленных транзакциях для двухфазного коммита.

  • pg_xlog — каталог, содержит WAL-файлы

  • Добавить комментарий

    Закрыть меню