Надежная и безопасная миграция ИТ-инфраструктуры в K2 Cloud с Хайстекс Акура

Решение «Хайстекс Акура» входит в единый реестр российских программ от Минцифры

Как сделать бэкап базы данных PostgreSQL: инструкция, советы и автоматизация

Потеря данных — одна из главных угроз для любого бизнеса. Поэтому вопрос, как сделать бэкап PostgreSQL встаёт раньше, чем произойдёт сбой. В этой статье простыми словами расскажем, как выполнить резервное копирование базы данных PostgreSQL, какие инструменты подойдут под разные задачи и как автоматизировать этот процесс с помощью решений от Хайстекс.

Почему важно делать бэкапы PostgreSQL

PostgreSQL — одна из самых популярных СУБД с открытым кодом. Её выбирают стартапы, крупный бизнес, государственные организации. Но, как и любая база данных, PostgreSQL уязвима к:

  • ошибкам пользователей (например, случайное удаление таблицы);
  • аппаратным сбоям и перегрузкам;
  • вирусным атакам, включая ransomware;
  • неудачным обновлениям или миграциям.

 

Поэтому знание того, как сделать бэкап БД PostgreSQL, — это не опция, а необходимость. Особенно если вы хотите соблюдать принципы RPO и RTO, о которых мы рассказывали в другой статье.

Способы, как сделать бэкап PostgreSQL: от простых до профессиональных

Существует несколько подходов к созданию резервных копий PostgreSQL. Ниже — обзор самых популярных, с плюсами, минусами и примерами.

tekhnologicheskoe partnerstvo Khaysteks i HOSTVM

1. Классический способ, если вы только начали:

pg_dump

Один из самых простых и доступных способов как сохранить копию базы данных PostgreSQL — использовать встроенную утилиту pg_dump. Она создаёт дамп в виде SQL-скрипта или в сжатом бинарном формате.

Пример:

bash

pg_dump -U postgres -F c -b -v -f backup_file.backup your_database

Преимущества:

  • Простой запуск и настройка;
  • Можно бэкапить отдельные таблицы, схемы;
  • Подходит для ежедневных или ручных бэкапов.

Ограничения:

  • Подходит только для отдельных БД, не всего экземпляра;
  • В больших проектах — может быть медленным;
  • SQL-дампы можно восстанавливать через PostgreSQL.

Это подход для тех, кто начинает или работает с небольшими проектами и хочет понять, каким образом можно сделать резервную копию PostgreSQL вручную.

2. Если нужна полная копия экземпляра:
pg_basebackup
pg_basebackup позволяет создавать физическую резервную копию всего кластера PostgreSQL, включая данные и журналы WAL. Пример: bash
pg_basebackup -h localhost -D /var/lib/postgresql/backup -U replica -Fp -Xs -P
Преимущества:
  • Подходит для «живого» бэкапа без остановки;
  • Копирует весь экземпляр целиком;
  • Можно использовать для настройки репликации.
Ограничения:
  • Нельзя выбрать отдельную базу;
  • Требует пользователя с правами репликации.
  • Если вы ищете надёжный способ как настроить бэкап БД PostgreSQL для продакшн-среды — этот вариант подойдёт.

3. Файловые снапшоты — скорость и интеграция с инфраструктурой

Вы можете использовать файловую систему (например, ZFS, LVM) или гипервизоры (например, KVM) для создания моментального снимка всей системы, включая PostgreSQL, но необходимо либо перевести PostgreSQL в режим бэкапа (pg_backup_start / pg_backup_stop в PG15+, ранее pg_start_backup / pg_stop_backup), либо убедиться, что снапшот обеспечивает crash-consistent состояние. Без этого данные после восстановления могут оказаться повреждёными.

Преимущества:

  • Очень быстрое создание;
  • Не нагружает PostgreSQL напрямую.

Ограничения:

  • Сложнее восстановить отдельную таблицу или строку;
  • Требует понимания, как работают транзакционные журналы и состояния WAL.
4. WAL-архивирование — если нужен Point-in-Time Recovery WAL (Write-Ahead Log) — это журнал всех изменений в базе. Архивируя его, вы можете восстановить базу на любую точку во времени. Настройка: Включите
archive_mode = on в postgresql.conf
Также необходимо установить wal_level = replica (или выше) в postgresql.conf. По умолчанию wal_level = replica, но если он не выставлен явно, читатель может не знать об этом требовании, то есть без неё WAL не будет содержать достаточно данных для PITR. Задайте
archive_command
Например, bash
archive_command = 'cp %p /var/lib/pgsql/archive/%f'
Важно: при использовании этого метода также нужно регулярно делать полные бэкапы базы (pg_basebackup или pg_dump).
 
pgBackRest — если нужен production-ready инструмент
pgBackRest — зрелый специализированный инструмент резервного копирования PostgreSQL, разработанный Crunchy Data. Написан на C, распространяется с открытым исходным кодом. De facto стандарт для продакшн-окружений, когда встроенных утилит уже недостаточно: он объединяет физическое копирование, WAL-архивирование и управление бэкапами в едином решении. Что умеет:
  •   Полные, дифференциальные и инкрементальные бэкапы;
  •   Встроенное WAL-архивирование и PITR — заменяет ручную настройку archive_command;
  •   Параллельное копирование и восстановление — ощутимо ускоряет работу на больших базах;
  •   Сжатие и шифрование данных нативно, без внешних инструментов;
  •   Поддержка хранилищ: локальное, S3, Azure Blob Storage, Google Cloud Storage.
Пример: bash
# полный бэкап

pgbackrest --stanza=mydb backup --type=full

# инкрементальный бэкап

pgbackrest --stanza=mydb backup --type=incr

# восстановление на точку во времени

pgbackrest --stanza=mydb --delta restore --target="2024-01-15 14:00:00"
Если вы уже используете WAL-архивирование и вам нужна надёжная автоматизация без написания собственных скриптов — pgBackRest станет логичным следующим шагом.

Как восстановить базу данных из бэкапа? Рассматриваем кейс восстановления на примере СУБД PostgreSQL / Postgres Pro →

Что учитывать, когда вы решаете, как сделать бэкап БД PostgreSQL

При выборе стратегии резервного копирования важно учитывать:

  • Автоматизацию: не полагайтесь на ручные скрипты — используйте планировщики (cron, systemd) или автоматизированные платформы.
  • Безопасность хранения: копия на том же сервере = отсутствие бэкапа. Используйте внешние хранилища или S3-совместимые облака.
  • Шифрование и контроль доступа: особенно важно при работе с персональными или коммерческими данными.
  • Тестирование восстановления: убедитесь, что вы действительно можете восстановить данные — хотя бы раз в квартал.
  • Журналирование и мониторинг: проверяйте статус завершения каждой резервной копии.

Готовы защитить свои базы данных PostgreSQL от простоев и потерь данных?

Оставьте почту и мы проведём бесплатный экспресс-аудит инфраструктуры, покажем слабые места и предложим решения для вашего бизнеса. Не откладывайте на потом!

Как Хайстекс Акура помогает автоматизировать бэкап PostgreSQL

Если вы не хотите каждый раз вручную разбираться, как сделать бэкап базы данных PostgreSQL, — особенно в случае масштабной, гибридной или облачной инфраструктуры — стоит рассмотреть готовое решение.

Хайстекс Акура предлагает:

  • Поддержку PostgreSQL на виртуальных и физических серверах, а также в облаках;
  • Автоматическое создание резервных копий с нужной периодичностью;
  • Архивирование и шифрование данных «из коробки»;
  • Создание резервных копий данных и журнала транзакций по заданному вами расписанию, которые можно использовать для восстановления сервера на конкретный момент времени — вплоть до нужной транзакции;
  • Централизованную панель управления и отчётность;
  • Интеграцию с S3-хранилищами, включая Selectel, Yandex, VK Cloud и другие.

 

С помощью Хайстекс Акура вы сможете упростить процессы, обеспечить соответствие требованиям по RPO и RTO и избавиться от ручной рутины. Это решение подойдёт тем, кто ищет надёжный и проверенный способ как сделать бэкап PostgreSQL в корпоративной среде.

🔖 Защита от программ-вымогателей с Хайстекс Акура: как сохранить точки восстановления и обеспечить ИТ-устойчивость →

Будьте в курсе наших новостей и обновлений продукта 

Узнать больше о Хайстекс Акура

DR/СРК и миграция для Сбербанка с помощью Хайстекс Акура

Как Хайстекс мигрирует критически важные для бизнеса рабочие нагрузки Сбербанка в одну платформу виртуализации для распределения нагрузки и возможности скалирования ресурсов

Программное решение Хайстекс Акура

Узнайте больше о главных преимуществах продукта Хайстекс Акура, ключевыx этапах процесса миграции, возможностях аварийного восстановления (disaster recovery) и системе резервного копирования

DR/СРК и миграция в Яндекс.Облако с помощью Хайстекс Акура

Как Хайстекс помог Яндекс.Облако повысить безопасность и надежность ИТ-инфраструктуры и улучшить стратегию миграции рабочих нагрузок клиентов