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