Postgresql, где хранится база данных Windows

Обновлено: 17.05.2024

В Windows7 все базы данных обозначаются номером в файле с именем pg_database в папке C:Program Files (x86)PostgreSQL8.2dataglobal . Затем вы должны найти имя папки по этому номеру в C:Program Files (x86)PostgreSQL8.2dataase . Это содержимое базы данных.

Где базы данных хранятся в PostgreSQL?

Все данные, необходимые для кластера базы данных, хранятся в каталоге данных кластера, обычно называемом PGDATA (по имени переменной среды, которая может использоваться для его определения). Обычное место для PGDATA — /var/lib/pgsql/data.

Впоследствии возникает вопрос, где в базе данных хранятся данные? Внутри базы данных данные хранятся в таблицах. Для этого были созданы таблицы. Таблицы — это простейшие объекты (структуры) для хранения данных, существующие в базе данных. Например, на картинке выше показан скриншот таблицы, в которой хранится общая информация о некоторых автомобилях.

Люди также спрашивают, как Postgres хранит данные?

PostgreSQL предоставляет два различных способа хранения двоичных данных. Двоичные данные можно хранить в таблице с использованием типа данных bytea или с помощью функции больших объектов, которая сохраняет двоичные данные в отдельной таблице в специальном формате и ссылается на эту таблицу, сохраняя значение типа oid в вашей таблице.< /p>

Где хранятся базы данных PostgreSQL в Ubuntu?

Файлы конфигурации PostgreSQL хранятся в каталоге /etc/postgresql//main. Например, если вы устанавливаете PostgreSQL 9.5, файлы конфигурации хранятся в каталоге /etc/postgresql/9.5/main.

Как просмотреть базы данных PostgreSQL?

Список баз данных. Один серверный процесс Postgres может одновременно управлять несколькими базами данных. Каждая база данных хранится в виде отдельного набора файлов в своем собственном каталоге внутри каталога данных сервера. Чтобы просмотреть все определенные базы данных на сервере, вы можете использовать метакоманду списка или ее ярлык l .

Как данные базы данных хранятся на диске?

Структура хранения базы данных Эти таблицы хранятся на жестком диске сервера базы данных. Таблицы базы данных обычно делятся на столбцы и строки, как и обычная графическая таблица. В таблице базы данных столбцы определяют категорию информации и тип данных, а строки содержат фактическую информацию.

Как сохранить базу данных PostgreSQL?

Чтобы экспортировать базу данных PostgreSQL с помощью phpPgAdmin, выполните следующие действия. Войдите в cPanel. В разделе БАЗЫ ДАННЫХ на главном экране cPanel нажмите phpPgAdmin: на левой панели окна phpPgAdmin разверните Серверы, разверните PostgreSQL, а затем щелкните имя базы данных, которую вы хотите экспортировать.

Что такое базовый каталог в PostgreSQL?

В этой папке PostgreSQL хранит все данные, которые вы вставляете в свои базы данных (см. Макет файла базы данных PostgreSQL). Каждый подкаталог используется базой данных в вашем кластере, файлы внутри них являются фактическими данными отношений (таблицы, индексы, последовательности и т. д.).

Как файлы хранятся на диске?

Когда ваш компьютер сохраняет данные на своем жестком диске, он не просто бросает намагниченные гвозди в коробку вперемешку. Данные хранятся очень упорядоченно на каждой пластине. Биты данных располагаются концентрическими круговыми дорожками, называемыми дорожками.

Где находится PSQL?

psql находится в папке bin установки PostgreSQL и установки PgAdmin III. Это psql 8.3. 5, интерактивный терминал PostgreSQL.

Что такое сервер PostgreSQL?

PostgreSQL, также известная как Postgres, представляет собой бесплатную систему управления реляционными базами данных (RDBMS) с открытым исходным кодом, в которой особое внимание уделяется расширяемости и соответствию техническим стандартам. Это база данных по умолчанию для macOS Server, а также она доступна для Linux, FreeBSD, OpenBSD и Windows.

Как перенести базу данных Postgres на другой сервер?

Как Postgres хранит JSON?

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

Что такое тост в Postgres?

TOAST — это механизм, который PostgreSQL использует для предотвращения превышения физическими строками размера блока данных (обычно 8 КБ). Если этого недостаточно, чтобы получить строку размером менее 2 КБ, значения широкого поля разбиваются на фрагменты, которые сохраняются в связанной таблице TOAST.

Что такое кортежи в PostgreSQL?

они выглядят как строки, кортеж на самом деле является тем, чем он является. не для того, чтобы произвести впечатление, а для чего. Это. кортеж определяется как «объект данных, содержащий два или более.

Как PostgreSQL хранит и индексирует таблицы?

Обычно PostgreSQL блокирует индексируемую таблицу от операций записи и выполняет построение всего индекса за одно сканирование таблицы.Другие транзакции по-прежнему могут читать таблицу, но если они попытаются вставить, обновить или удалить строки в таблице, они будут заблокированы до завершения построения индекса.

Как изменить каталог данных в PostgreSQL?

Изменение каталога данных для PostgreSQL. Подключитесь к своим серверам через SSH. Остановите службу PostgreSQL, введя следующую команду: Убедитесь, что PostgreSQL больше не работает: Создайте новый каталог для ваших данных: Убедитесь, что ваша новая папка доступна только пользователю PostgreSQL: Переместите данные из старой папки в новую один:

Какое расширение имеет файл базы данных?

Файлы базы данных Базы данных обычно используются для хранения данных, на которые ссылаются динамические веб-сайты. Распространенные расширения файлов базы данных включают . ДБ, . АКДБ, .

PostgreSQL для Windows по умолчанию устанавливает каталог PGDATA в "C:\Program Files\PostgreSQL\some version\data". В этом мини-HOWTO объясняется, как изменить каталог PGDATA по умолчанию на другое место.

Содержание

Шаг 1. Остановите службу PostgreSQL

Закройте все приложения, которые в данный момент подключены к вашей базе данных, затем перейдите в Управление службами Windows и остановите службу PostgreSQL:

остановить службу

Пуск->Настройки->Панель управления->Администрирование->Службы

Вы должны проверить диспетчер задач, чтобы узнать, запущены ли все еще какие-либо экземпляры postgresql.exe. Если это так, НЕ ЗАВЕРШАЙТЕ их, вместо этого закройте все приложения, которые все еще подключены к базе данных. Иногда такие службы, как веб-серверы, поддерживают постоянные соединения. В этом случае вам также следует остановить эти службы.

Шаг 2. Измените значения реестра

Запустите редактор реестра Windows (regedit.exe) и перейдите к: "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-some version".

Дважды щелкните «ImagePath» и измените каталог после параметра «–D» на новое местоположение. Если путь к вашему новому местоположению содержит пробелы, вы должны заключить его в кавычки.

изменить путь PGDATA

Редактор реестра

Шаг 3. Переместите папку данных в новое место

Переместите текущий каталог PGDATA в каталог, который вы только что указали на шаге 2. Обратите внимание, что вы должны делать это от имени администратора на серверах. Вы также должны проверить разрешения пользователя в новом каталоге, чтобы убедиться, что имя пользователя, под которым работает ваш экземпляр PostgreSQL, имеет соответствующие разрешения в новом каталоге, иначе PostgreSQL не запустится.

Шаг 4. Перезапустите службу PostgreSQL

Прежде чем вы сможете запустить свою базу данных, вы должны закрыть и снова открыть окно управления службами Windows. Это обновит путь, который вы только что изменили в реестре, без необходимости перезагрузки системы.

После закрытия и повторного открытия окна «Управление службами» следует проверить информацию «путь к исполняемому файлу» службы базы данных PostgreSQL. Путь после параметра «–D» теперь должен указывать на ваш новый каталог.

проверьте новый путь

Свойства службы

Теперь, когда каталог PGDATA перемещен и параметр запуска службы в реестре изменен, вы можете приступить к запуску службы. [[Категория::Администрация]]

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

Традиционно файлы конфигурации и файлы данных, используемые кластером базы данных, хранятся вместе в каталоге данных кластера, обычно называемом PGDATA (по имени переменной среды, которая может использоваться для определения Это). Обычно PGDATA находится в /var/lib/pgsql/data. На одном компьютере может существовать несколько кластеров, управляемых разными экземплярами сервера.

Каталог PGDATA содержит несколько подкаталогов и управляющих файлов, как показано в Таблице 59-1. В дополнение к этим обязательным элементам файлы конфигурации кластера postgresql.conf, pg_hba.conf и pg_ident.conf традиционно хранятся в PGDATA, хотя их можно разместить и в другом месте.

Таблица 59-1. Содержимое PGDATA

< tr> < tr>
Элемент Описание
PG_VERSION Файл, содержащий основной номер версии PostgreSQL
base Подкаталог, содержащий подкаталоги для каждой базы данных
global Подкаталог, содержащий общие для кластера таблицы, такие как pg_database
pg_clog Подкаталог, содержащий данные о состоянии фиксации транзакции
pg_dynshmem Подкаталог, содержащий файлы, используемые подсистемой динамической общей памяти
pg_logical Подкаталог, содержащий данные о состоянии для логического декодирования
pg_multixact Подкаталог, содержащий данные о состоянии нескольких транзакций (используется для общих блокировки строк)
pg_notify Подкаталог, содержащий данные состояния LISTEN/NOTIFY
pg_replslot Субди rectory, содержащий данные слота репликации
pg_serial Подкаталог, содержащий информацию о совершенных сериализуемых транзакциях
pg_snapshots Подкаталог, содержащий экспортированные снимки
pg_stat Подкаталог, содержащий постоянные файлы для подсистемы статистики
pg_stat_tmp Подкаталог, содержащий временные файлы для подсистемы статистики
pg_subtrans Подкаталог, содержащий данные о состоянии подтранзакций
pg_tblspc Подкаталог, содержащий символические ссылки на табличные пространства
pg_twophase Подкаталог, содержащий файлы состояния для подготовленных транзакций
pg_xlog Подкаталог, содержащий файлы WAL (Write Ahead Log)
postgresql.auto.conf Файл, используемый для хранения параметров конфигурации. счетчики, установленные с помощью ALTER SYSTEM
postmaster.opts Файл, записывающий команду -line параметры, с которыми последний раз запускался сервер
postmaster.pid Файл блокировки, записывающий текущий идентификатор процесса postmaster ( PID), путь к каталогу данных кластера, отметка времени запуска постмастера, номер порта, путь к каталогу сокета домена Unix (пустой в Windows), первый действительный адрес прослушивания (IP-адрес или * или пустой, если не прослушивается TCP) ) и идентификатор сегмента разделяемой памяти (этот файл отсутствует после выключения сервера)

Для каждой базы данных в кластере есть подкаталог в PGDATA/base, названный в честь OID базы данных в pg_database. Этот подкаталог является расположением по умолчанию для файлов базы данных; в частности, там хранятся его системные каталоги.

Каждая таблица и индекс хранятся в отдельном файле. Для обычных отношений эти файлы называются по номеру таблицы или индекса filenode, который можно найти в pg_class.relfilenode. Но для временных отношений имя файла имеет вид tBBB_FFF, где BBB — бэкенд ID серверной части, которая создала файл, а FFF — номер файлового узла. В любом случае, в дополнение к основному файлу (a/k/a main fork), каждая таблица и индекс имеют карту свободного пространства (см. Раздел 59.3), в которой хранится информация о свободном пространстве, доступном в Соотношение. Карта свободного пространства хранится в файле с именем, состоящим из номера файлового узла и суффикса _fsm. Таблицы также имеют карту видимости, хранящуюся в ответвлении с суффиксом _vm, для отслеживания известных страниц, не имеющих мертвых кортежей. Карта видимости описана далее в Разделе 59.4. Незарегистрированные таблицы и индексы имеют третью ветку, известную как вилка инициализации, которая хранится в вилке с суффиксом _init (см. Раздел 59.5).

Обратите внимание, что хотя файловый узел таблицы часто совпадает с ее OID, это не всегда так; некоторые операции, такие как TRUNCATE, REINDEX, CLUSTER и некоторые формы ALTER TABLE, могут изменять файловый узел, сохраняя OID. Избегайте предполагать, что файловый узел и OID таблицы совпадают. Кроме того, для некоторых системных каталогов, включая сам pg_class, pg_class.relfilenode содержит ноль. Фактический номер файлового узла этих каталогов хранится в структуре данных более низкого уровня и может быть получен с помощью функции pg_relation_filenode().

Если размер таблицы или индекса превышает 1 ГБ, они делятся на сегменты размером в гигабайты. Имя файла первого сегмента совпадает с файловым узлом; последующие сегменты называются filenode.1, filenode.2 и т. д. Такое расположение позволяет избежать проблем на платформах с ограничениями размера файла. (На самом деле 1 ГБ — это просто размер сегмента по умолчанию.Размер сегмента можно настроить с помощью параметра конфигурации --with-segsize при сборке PostgreSQL.) В принципе, разветвления карты свободного пространства и карты видимости также могут потребовать несколько сегментов, хотя это маловероятно. на практике.

Таблица, в которой есть столбцы с потенциально большими записями, будет иметь связанную таблицу TOAST, которая используется для внешнего хранения значений полей, которые слишком велики для хранения в соответствующих строках таблицы. . pg_class.reltoastrelid связывает таблицу с ее таблицей TOAST, если таковая имеется. Дополнительную информацию см. в Разделе 59.2.

Содержимое таблиц и индексов обсуждается далее в Разделе 59.6.

Табличные пространства усложняют сценарий. Каждое определяемое пользователем табличное пространство имеет символическую ссылку внутри каталога PGDATA/pg_tblspc, которая указывает на физический каталог табличного пространства (т. е. на место, указанное в CREATE табличного пространства). ТАБЛИЧНОЕ ПРОСТРАНСТВО). Эта символическая ссылка названа в честь OID табличного пространства. Внутри физического каталога табличного пространства есть подкаталог с именем, зависящим от версии сервера PostgreSQL, например PG_9.0_201008051. (Причина использования этого подкаталога заключается в том, что последующие версии базы данных могут без конфликтов использовать одно и то же значение местоположения CREATE TABLESPACE.) В подкаталоге для конкретной версии есть подкаталог для каждой базы данных, в которой элементы в табличном пространстве, названные в честь OID базы данных. Таблицы и индексы хранятся в этом каталоге с использованием схемы именования файловых узлов. Доступ к табличному пространству pg_default осуществляется не через pg_tblspc, а соответствует PGDATA/base. Точно так же доступ к табличному пространству pg_global осуществляется не через pg_tblspc, а соответствует PGDATA/global.

Функция pg_relation_filepath() показывает полный путь (относительно PGDATA) любого отношения. Это часто полезно в качестве замены запоминания многих из вышеперечисленных правил. Но имейте в виду, что эта функция просто дает имя первого сегмента основного ответвления отношения — вам может понадобиться добавить номер сегмента и/или _fsm, _vm или _init, чтобы найти все файлы, связанные с отношением.

Временные файлы (для таких операций, как сортировка большего количества данных, чем может поместиться в памяти) создаются в PGDATA/base/pgsql_tmp или в pgsql_tmp< /tt> подкаталог каталога табличного пространства, если для них указано табличное пространство, отличное от pg_default. Имя временного файла имеет вид pgsql_tmpPPP.NNN, где PPP — PID владельца серверной части, а NNN различает разные временные файлы этой серверной части.

Где хранятся файлы базы данных PostgreSQL?

sudo -u postgres psql -c "показать каталог_данных;" покажет текущие места хранения в стандартной установке PostgreSQL.

14 ответов 14

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

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

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

показать каталог_данных; указывает на точное местоположение данных. Поиск конкретной папки мучителен, так как кто-то другой мог установить ее для вас, и теперь вы не знаете конфигурацию, поэтому использование sql помогает сэкономить время. :) Спасибо, Майк.

Кстати, если кто-то ищет расположение базы данных для Postgres.app на Mac, как я, по умолчанию он находится в ~/Library/Application Support/Postgres[ver]/var.

В Windows7 все базы данных обозначаются номером в файле с именем pg_database в папке C:\Program Files (x86)\PostgreSQL\8.2\data\global . Затем вы должны найти имя папки по этому номеру в C:\Program Files (x86)\PostgreSQL\8.2\data\base . Это содержимое базы данных.

Почему бы и нет? Если вы не упомянете ОС и просто скажете «это работает», любой, кто попробует это на другой ОС, будет сбит с толку. Это актуально. РЕДАКТИРОВАТЬ: О, вы, вероятно, имеете в виду «вообще не давать конкретный ответ ОС». Я думаю, это имеет смысл, я не знаю.

@SamGoody, в том, что вы сказали, был бы смысл, если бы этот ответ был действительно правильным. (Это не совсем неправильно, так как папка может быть в Windows, но это точно не данность). Так это или нет, можно легко узнать, следуя уже данному ответу.

@senthilkumari У меня есть postgresql 11 и Windows 10. Как вы упомянули, я пытался увидеть базу данных pg_database внутри глобальной папки, но ничего не увидел. Я мог видеть кучу _vms, _fsm, config_exec_params, pg_control, pg_filenode.map, pg_internal.init. Для Windows 10 файл с каким именем я должен искать. Отличается?

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

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

Там должны быть ваши файлы БД.

Вы можете изменить его с помощью initdb -D "c:/mydb/"

Зависит от дистрибутива — для Fedora 20 он находится в /var/lib/pgsql/data . Лучше выяснить это с помощью ps auxw|grep postgres|grep -- -D .

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

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

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

Другими словами, вы ищете каталог, который нужно указать после -D в команде запуска pg_ctl.

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

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

Например, в моем случае (установка HomeBrew на Mac OS X) эти файлы находятся в /usr/local/var/postgres . Чтобы запустить сервер, я набираю:

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

Расположение определенных таблиц/индексов можно настроить с помощью TABLESPACE:

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

База данных, соответствующая файлу таблицы postgresql, представляет собой каталог. Расположение всего каталога данных можно получить, запустив SHOW data_directory. в UNIX-подобной ОС (например: Mac) /Library/PostgreSQL/9.4/data Перейдите в базовую папку в каталоге данных, в котором есть все папки базы данных: /Library/PostgreSQL/9.4/data/base

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

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

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

Читайте также: