Как определить каким файлам на диске соответствуют Postgres таблицы

  • Михаил
  • 12 мин. на прочтение
  • 118
  • 10 Aug 2022
  • 10 Aug 2022

Иногда возникает необходимость определить, какому файлу на диске соответствует таблица. У вас имеется путь, полный цифр, такой как base/16384 и вы хотите разобраться в нем.

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

show data_directory;

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

show all;

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

SELECT * FROM pg_tablespace;

Смотрим все OID баз на сервере

SELECT oid FROM pg_database;

Далее более подробно конкретной базы

SELECT oid FROM pg_database WHERE datname = 'mytest'

Также есть вариант проще, папки хранения файлов соответствуют OID базы данных.

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

<POSTGRESQL_DIRECTORY>/data/base/<OID>