Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Резервирование и восстановление базы PostgreSQL

Резервирование и восстановление базы PostgreSQL
Я
   Sиlьver
 
23.04.19 - 13:59
Добрый день. Наверняка кто-то сталкивался с такой проблемой.

1.Делаю резервирование базы через скрипт
SET PGPASSWORD=pass
SET PGUSER=postgres
SET PGDATABASE=new_base

"C:\Program Files\PostgreSQL\9.6.7-1.1C\bin\pg_dump.exe" --host localhost --port 5432 --role "postgres" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8  --file "D:\backup\%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.backup"

2. Создаю пустую базу в pgAdmin
3. Восстанавливаю в эту базу через pgAdmin резервную копию
C:\Program Files (x86)\pgAdmin 4\v4\runtime\pg_restore.exe --host "localhost" --port "5432" --username "postgres" --no-password --dbname "new_base_restore" --verbose "D:\\backup\\2019-0~4.BAC"

В результате база восстанавливается и работает, но в процессе восстановления есть ошибка:

pg_restore: connecting to database for restore
pg_restore: creating SCHEMA "public"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 4; 2615 2200 SCHEMA public postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  schema "public" already exists
    Command was: CREATE SCHEMA public;

Хотелось бы понять, что я делаю не так.
 
 
   Nyoko
 
1 - 23.04.19 - 14:18
dropdb -U postgres new_base_restore && \
pg_restore --create --dbname=postgres --username=postgres pg_backup.dump
   Sиlьver
 
2 - 23.04.19 - 14:28
(1) А вы можете привести полный текст скрипта? Вы у себя его используете?
   Sиlьver
 
3 - 24.04.19 - 08:51
up
   stix2010
 
4 - 24.04.19 - 09:15
(3) все описано в (2), с версии 9.1 такое поведение,  https://switch-case.ru/72731818
   Sиlьver
 
5 - 25.04.19 - 10:57
Спасибо, все получилось. База восстанавливается в базу с тем же именем, что и база-источник бекапа.
А есть ли варианты восстановить в отдельную базу?
   bolero
 
6 - 25.04.19 - 15:00
(5) а man к команде почитать не?

       -d dbname
       --dbname=dbname
           Connect to database dbname and restore directly into the database.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.