@PiggyPig

В какой папке находятся созданные таблицы PostgreSQL?

Нужно очистить таблицу на сервере, но т.к. данные на ней еще нужны, то надо как-то перенести ее на компьютер.
Проблема в том, что перерыл возможные места, но кроме как файлов самой PostrgeSQL ничего не нашел. В гуглах пишут про папку data, в которой якобы должны находиться те самые таблицы, но и этой папки не было найдено.
Сервер на Ubuntu 16.04. Собственно где я был:

usr/lib/postgresql
var/lib/postgresql
etc/postgresql

Помогите пожалуйста. В запросах к базе я ноль, поэтому проще будет найти файлы и все попереносить.
  • Вопрос задан
  • 3799 просмотров
Решения вопроса 2
longclaps
@longclaps
Запустите psql и введите show data_directory;
postgres=# show data_directory;
       data_directory        
-----------------------------
 /var/lib/postgresql/10/main
(1 row)
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
поэтому проще будет найти файлы и все попереносить.

И так делать нельзя и ничего кроме бесполезного файлика с бинарным мусором вы в резуультате не получите.
Прочитать данные из raw файлика, а уж тем более подсунуть его в другую базу - очень сильно замучается даже опытный DBA, способный читать и понимать исходный код postgresql (это кстати минимальное требование к тому чтобы что-то достать из сырого файлика таблицы).

Потому что директория базы PostgreSQL - это один неделимый объект (плюс tablespace, которые отделять тоже нельзя от данных кластера). Для чтения данных из файлов таблицы (их много может быть) нужен системный каталог, нужен toast (если был создан), нужны clog и xlog чтобы понять, а что мы собственно в этом файлике видеть должны, а что просто ещё не вычистил вакуум.

Если вам нужны данные из конкретной таблички - сделайте логический снимок таблички уже упомянутым pg_dump.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы