Как сделать backup PostgreSQL с минимальной нагрузкой на прод?

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
9,471
Реакции
1,547
Credits
33,153
Сегодня об одном из самых эффективных способов бэкапа PostgreSQL — с помощью pg_basebackup + реплики.

Сценарий: у нас есть продовый PostgreSQL и настроенная горячая реплика (streaming replication). Зачем использовать реплику для бэкапа?
Причины:
- На проде бэкап может замедлить отклик приложения.
- Реплика — отличный способ разгрузить основной сервер.
- Бэкап с pg_basebackup возможен только на стопнутой БД или через репликацию.

Как сделать:
SQL:
pg_basebackup -h replica.host -U repl_user -D /backup/pg -F tar -z -P
Пояснения:
- -h — адрес реплики
- -U — пользователь с правами репликации
- -D — куда класть бэкап
- -F tar -z — формат архива и сжатие
- -P — прогресс в консоли

Важно:

Пользователь repl_user должен быть прописан в pg_hba.conf и иметь роль REPLICATION.

А если добавить в cron, то получишь стабильный ночной бэкап без боли.