1

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

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .