Инструкция по копированию БД

На инстансе заходим в бд. (Для распределенного на master хост)

docker exec -it postgres-single-instance-prod bash

psql -U postgres

\l

Необходимая нам база в данном случае – simpleone.
Выходим, два раза ctrl+d

Проверяем сколько весит БД и свободное место на диске.

df -h

Снятие дампа.
docker exec -i postgres-single-instance-prod pg_dump -U postgres simpleone | gzip > 21032023_backup.sql.gz

В директории, откуда была запущена команда, появится файл бэкапа.

Для импорта БД необходимо подготовить инстанс той же версии.

Перед импортом необходимо очистить предыдущую БД инстанса
docker exec -i postgres-single-instance-prod psql -d simpleone -U postgres -c "DROP SCHEMA public CASCADE;CREATE SCHEMA public;"

Импорт дампа.

zcat 21032023_backup.sql.gz | docker exec -i postgres-single-instance-prod psql -U postgres simpleone

Возвращаем права на схему.

docker exec -i postgres-single-instance-prod psql -d simpleone -U postgres -c "grant all on schema public to public;"

Инстанс работает.

2 лайка