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

16588
yankitwizzy

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

1

1 ответ на вопрос

1
Anil

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

Я на окнах yankitwizzy 12 лет назад 0
Вы все еще должны быть в состоянии сделать это, используя psql.exe в комплекте с pgadmin. При установке по умолчанию это должно быть где-то вроде `C: \ Program Files \ pgAdmin III \ 1.14>` Anil 12 лет назад 2
Просто попробовал сам и хотел бы отметить два нюанса с `psql.exe` на окнах. Возможно, вам придется установить переменную среды `PGCLIENTENCODING` в кодировку, с которой создается ваша (пустая) база данных. Кроме того, мне пришлось указать путь к файлу резервной копии с помощью '/' (косая черта), то есть `db- # \ i C: / Temp / db.backup` Anil 12 лет назад 0

Похожие вопросы