Как восстановить обычный текстовый файл 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
так что он может создавать БД, роли и другие объекты, указанные в файле резервной копии. Операторы создания базы данных и роли могут отсутствовать в резервной копии, в зависимости от того, имеет ли он весь сервер (у него есть) или только одну базу данных (вы должны создать БД и роль (и)). Таким образом, вам придется создать их, прежде чем восстановить его.