2014-01-29 7 views

ответ

35

pg_restore при запуске без имени базы данных выводит текстовый отвал в стандартный вывод; вы можете отправить это в другом месте с помощью -f или с перенаправлением ввода-вывода.

pg_restore -f mydatabase.sql mydatabase.dump 
+1

Когда я пытаюсь это сделать, я получаю 'pg_restore: входной файл [архиватор] не представляется допустимым архивом'. Я могу заверить вас, что свалки были сделаны с использованием той же версии postgresql 8.4.17. – sorin

+0

Извините, я только что обнаружил, что парень, который сделал резервные копии, gzipped их после использования -Fc?! ...и просмотр mc показывал мне несжатый контент в файловом представлении ... – sorin

+0

Это сработало, спасибо – Tom

5

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

pg_restore mybinaryfile.backup > mysqlfile.sql 

Никаких особых флагов, так как pg_restore просто выплевывает на стандартный вывод.

0

Обратите внимание, что при запуске нескольких кластеров, команда восстановления может не понравиться версии по умолчанию ...

pg_restore: [архиватор] неподдерживаемая версия (1,12) в заголовке файла

В тот случай, вы должны указать версию, хост и порт, как в:

pg_restore --cluster 9.1/localhost:5433 -f db.sql db.pgsql 

(., обратите внимание, что информация host:port игнорируется с опцией -f)

порт (5433) можно определить с помощью команды pgsql как в:

pgsql --port 5433 template1 

Когда pgsql подключается, пишет комментарий, такие как:

Psql (9.3.6, сервер 9.1.13)

Это значит, что вы используете pgsql 9.3.6, и этот порт 5433 ссылается на сервер 9.1.13.

Если вы не уверены, какие порты в настоящее время используются, вы можете использовать команду netstat как в:

sudo netstat -a64np | grep LISTEN | grep postgres 

sudo требуется для -p варианта, который печатает имя процесса. Это дает вам список портов (обычно TCP и UDP портов).

Наконец, в системе Debian/Ubuntu, вы можете получить список установленных кластеров с командой dpkg -l как в:

dpkg -l '*postgres*' 

список записей, которые начинаются с «II» (самый левый столбец) в настоящее время установлены. У вас, конечно же, есть похожие команды для других Unices, которые помогут вам определить установленные версии.