Как восстановить обычный текстовый файл postgres .backup

Я экспортировал базу данных postgres из pgAdmin в простом формате, потому что хотел найти весь текст базы данных. Затем я попытался восстановить базу данных обратно, но выдает ошибку, говорящую, что архивный файл не является допустимым архивным файлом. Как мне восстановить БД обратно?

1 ответ

Решение

Казалось бы, формат PLAIN - это SQL. Цитировать документацию:

pg_dump не поддерживает все параметры для всех форматов файлов резервных копий. В частности, для резервного копирования BLOB-объектов формат PLAIN не может быть использован. Кроме того, файл PLAIN не может быть интерпретирован и не может быть восстановлен с помощью pgAdmin. Формат PLAIN создает сценарий SQL, который можно выполнить с помощью инструмента psql. Для стандартных целей резервного копирования и восстановления рекомендуется использовать параметры COMPRESS и TAR.

Я предполагаю, что вы можете восстановить, используя что-то вроде (на Unix):

psql < backup-file

или из подсказки psql (newdb - это пустая БД)

psql newdb
newdb=# \i backup-file

Возможно, вам придется работать как привилегированный пользовательpostgres' (скажем, в Unix) или передайте соответствующие полномочия для роли psql так что он может создавать БД, роли и другие объекты, указанные в файле резервной копии. Операторы создания базы данных и роли могут отсутствовать в резервной копии, в зависимости от того, имеет ли он весь сервер (у него есть) или только одну базу данных (вы должны создать БД и роль (и)). Таким образом, вам придется создать их, прежде чем восстановить его.

Другие вопросы по тегам