Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 PostgreSQL удаляет базу при восстановлении  [new]
ewgenik
Member

Откуда:
Сообщений: 2
Необходимо под Linux сделать бэкап базы (testsrc) и восстановить его в соседнюю базу (testdst) на этом-же сервере.

Бэкап:
pg_dump --host=localhost testsrc --username=postgres -Fc —file=testsrc.bkp

Восстановление:
dropdb --host 127.0.0.1 --port 5432 --username "postgres" "testdst" --if-exists
createdb --host 127.0.0.1 --port 5432 --username "postgres" "testdst"
pg_restore --host 127.0.0.1 --port 5432 --username "postgres" --dbname "testdst" --clean "testsrc.bkp"

Проблема: при восстановлении удаляется исходная база (testsrc). PostgreSQL 9.2.1-eter8ubuntu.

Подскажите, почему может удаляться исходная база?

PS. Вариант безупречно работает на нескольких серверах PostgreSQL 9.4.2.
16 янв 20, 12:37    [22060563]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL удаляет базу при восстановлении  [new]
vyegorov
Member

Откуда: Рига
Сообщений: 1186
ewgenik

Восстановление:
dropdb --host 127.0.0.1 --port 5432 --username "postgres" "testdst" --if-exists

Проблема: при восстановлении удаляется исходная база (testsrc). PostgreSQL 9.2.1-eter8ubuntu.

Подскажите, почему может удаляться исходная база?
Потому, что dropdb удаляет базу, для этого и сделана.
16 янв 20, 12:53    [22060582]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL удаляет базу при восстановлении  [new]
Sergej Grischenkow
Member

Откуда:
Сообщений: 73
vyegorov,

Да, но не testsrc.

@ewgenik
Посмотри что находится в файле testsrc.bkp (pg_dump без -Fc)

P.S.
Я запускаю pg_dump без параметра -Fc но с параметром --clean
Редактирую руками testsrc.bkp
и восстанавливаю с помощью psql -A -q -t .......
16 янв 20, 13:46    [22060624]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL удаляет базу при восстановлении  [new]
ewgenik
Member

Откуда:
Сообщений: 2
Sergej Grischenkow,

Благодарю! Как крайний вариант, возможно, так и сделал бы.

Все решилось проще, убрал --clean из pg_restore - все заработало как нужно.
Нужно было внимательнее доки читать.
16 янв 20, 19:07    [22060990]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL удаляет базу при восстановлении  [new]
Павел Лузанов
Member

Откуда:
Сообщений: 659
ewgenik,

Поскольку у вас восстановление в только что созданную БД, то указание --clean в pg_resotore действительно лишнее.

Тем не менее.
pg_restore удаляет и сразу создает БД только одновременно с двумя ключами: --clean --create (сокращенно -c -C).
А --clean без --create предварительно удаляет объекты внутри БД, но саму БД не трогает.
17 янв 20, 12:13    [22061476]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL удаляет базу при восстановлении  [new]
vyegorov
Member

Откуда: Рига
Сообщений: 1186
ewgenik,

Под “удаляется база” вы имеете в виду удаление объектов в базе, или же удаление самой базы?
Согласно доке комбинация `--clean -d target` должна удалить объекты в базе `target`. Может тут имеет место быть баг в 9.2?..

В целом использовать 9.2 не надо, совсем. И сильно думать об апгрейде 9.4.
17 янв 20, 18:30    [22061874]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить