Альтернатива pg_dump

Для логических бекапов Databasus построен поверх pg_dump. Databasus не заменяет pg_dump, а надстраивается над ним: управление бекапами, веб-интерфейс, автоматическое расписание, интеграция с облачными хранилищами, уведомления, командная работа и встроенное шифрование. Помимо логических бекапов Databasus также поддерживает физические бекапы, инкрементальные бекапы с архивированием WAL и Point-in-Time Recovery.

Краткое сравнение

Вот как Databasus расширяет базовую функциональность pg_dump:

Возможностьpg_dumpDatabasus
Движок бекаповpg_dumpПостроен на pg_dump
Управление бекапами❌ Нет✅ Да
Поддержка других СУБДТолько PostgreSQLPostgreSQL, MySQL, MariaDB, MongoDB
ИнтерфейсКомандная строкаВеб-интерфейс + API
РасписаниеВручную или cron-скрипты✅ Встроенный планировщик
ХранилищаЛокальная файловая системаЛокальный диск, S3, Google Drive, R2, Azure, NAS, Dropbox
Сжатиеgzip, LZ4, zstd (вручную)zstd (автоматически, оптимизировано)
ШифрованиеНужны внешние инструменты✅ Встроенное AES-256-GCM
Уведомления❌ Нет✅ Slack, Teams, Telegram, Email, Webhooks
Командные функции❌ Нет✅ Рабочие пространства, RBAC, журналы аудита
Политики храненияСкрипты очистки вручную✅ Автоматическая ротация
Мониторинг состояния❌ Нет✅ Встроенные health-чеки
Физические бекапы❌ Нет✅ Да
Инкрементальные бекапы❌ Нет✅ На уровне блоков (PG 17+)
Point-in-Time Recovery❌ Нет✅ Да
Удаленные бекапы✅ Да (CLI)✅ Да

Что такое pg_dump?

pg_dump — родная утилита PostgreSQL для создания логических бекапов. Она входит в PostgreSQL с самого начала и остается стандартным инструментом экспорта баз данных.

Сильные стороны pg_dump

  • Переносимые бекапы: создает дампы в формате SQL или custom, которые можно восстановить на других версиях PostgreSQL.
  • Выборочные бекапы: умеет выгружать отдельные таблицы, схемы или базы целиком.
  • Консистентные снимки: использует MVCC PostgreSQL, чтобы создавать консистентные бекапы, не блокируя запись.
  • Повсеместная поддержка: доступен в каждой установке PostgreSQL, хорошо документирован и проверен временем.
  • Гибкие форматы вывода: обычный SQL, custom, directory или tar.

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

pg_dump — мощный инструмент, но его использование в продакшене обычно требует дополнительных скриптов:

  • Нет встроенного расписания: нужны cron-задачи или внешние планировщики.
  • Только локальное хранилище: пишет в локальную файловую систему; загрузка в облако требует отдельных скриптов.
  • Нет шифрования: файлы бекапов по умолчанию не зашифрованы; нужно пропускать вывод через gpg или похожие инструменты.
  • Нет уведомлений: без своих скриптов не узнать, что бекап прошел успешно или упал.
  • Нет управления хранением: старые бекапы приходится удалять вручную или скриптами.
  • Только командная строка: нет визуального интерфейса для мониторинга и управления.

Как Databasus расширяет pg_dump

Databasus использует pg_dump как движок бекапов: все преимущества логических бекапов сохраняются, а сверху добавляются корпоративные функции.

Под капотом: когда вы запускаете бекап в Databasus, он выполняет pg_dump с оптимизированными параметрами, а затем берет на себя сжатие, шифрование и загрузку в настроенное хранилище.

Веб-интерфейс

Вместо запоминания опций командной строки pg_dump Databasus дает веб-интерфейс, где можно:

  • Добавлять базы через пошаговый мастер подключения
  • Настраивать расписание бекапов визуально
  • Смотреть историю и статусы бекапов с одного экрана
  • Скачивать или восстанавливать бекапы в один клик
  • Видеть графики состояния и доступности баз

Оптимизированное сжатие

По умолчанию Databasus использует сжатие zstd (уровень 5), которое дает:

  • Уменьшение размера в 4-8 раз по сравнению с несжатыми дампами
  • ~20% накладных расходов по времени — намного быстрее gzip
  • Полная автоматика — не нужно пропускать вывод через утилиты сжатия

За пределами pg_dump: физические бекапы и PITR

Логические бекапы Databasus строит на pg_dump, но выходит и за пределы того, что pg_dump вообще умеет:

  • Физические бекапы: копия всего кластера базы данных на уровне файлов через pg_basebackup. Быстрее и бекап, и восстановление для больших баз.
  • Инкрементальные и WAL-бекапы: инкрементальные бекапы на уровне блоков через pg_basebackup --incremental (на основе серверных WAL-сводок) плюс непрерывный стриминг WAL через pg_receivewal. Это дает Point-in-Time Recovery — восстановление на любую секунду между бекапами.
  • Аварийное восстановление: физические базовые бекапы и непрерывный стриминг WAL позволяют восстановиться почти без потери данных.

Эти бекапы построены на родном механизме резервного копирования PostgreSQL 17, так что Databasus переиспользует проверенный инструментарий самого PostgreSQL, а не изобретает свой. Нужен PostgreSQL 17 или новее; на более старых версиях доступны только логические бекапы через pg_dump. Все выполняется удаленно с хоста Databasus по протоколу репликации, поэтому на сервер базы данных ничего не устанавливается. До закрытых сетей Databasus добирается через SSH-туннель к внутреннему хосту или бастиону, так что базу не нужно открывать наружу. Как работают физические и PITR-бекапы.

Автоматизация бекапов

Одна из самых частых задач при работе с pg_dump — настроить надежные автоматические бекапы.

Традиционная автоматизация pg_dump

Типичный скрипт автоматизации pg_dump выглядит примерно так:

#!/bin/bash
# Backup script for pg_dump
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backups"
DB_NAME="mydb"

# Create backup
pg_dump -Fc -h localhost -U postgres $DB_NAME > $BACKUP_DIR/$DB_NAME_$DATE.dump

# Compress (if not using custom format)
# gzip $BACKUP_DIR/$DB_NAME_$DATE.sql

# Encrypt
gpg --encrypt --recipient backup@company.com $BACKUP_DIR/$DB_NAME_$DATE.dump

# Upload to S3
aws s3 cp $BACKUP_DIR/$DB_NAME_$DATE.dump.gpg s3://my-bucket/backups/

# Cleanup old backups (keep last 7 days)
find $BACKUP_DIR -name "*.dump*" -mtime +7 -delete

# Send notification on failure
if [ $? -ne 0 ]; then
  curl -X POST https://hooks.slack.com/... -d '{"text":"Backup failed!"}'
fi

Этот скрипт нужно поддерживать, тестировать и мониторить. Для каждой базы — своя запись в cron.

Автоматизация в Databasus

В Databasus то же самое уже встроено:

  • Визуальный планировщик: бекапы каждый час, день, неделю, месяц или по cron с точным временем.
  • Автоматическое сжатие: zstd применяется сам, без настройки.
  • Встроенное шифрование: AES-256-GCM с уникальным ключом для каждого бекапа.
  • Загрузка в облако: напрямую в S3, Google Drive, Cloudflare R2, Azure и другие хранилища.
  • Политики хранения: автоматическое удаление старых бекапов по вашим настройкам ротации.
  • Уведомления: алерты в Slack, Teams, Telegram, Email об успехе или ошибке.

Варианты хранилищ

pg_dump пишет в локальную файловую систему. Чтобы доставить бекапы в облачное хранилище, нужны дополнительные инструменты и скрипты.

Хранилища в Databasus

Databasus поддерживает несколько типов хранилищ из коробки:

  • Локальное хранилище
  • Amazon S3 и S3-совместимые сервисы
  • Google Drive
  • Cloudflare R2
  • Azure Blob Storage
  • NAS (сетевые хранилища)
  • Dropbox

У каждой базы может быть свое хранилище, а для избыточности можно настроить несколько хранилищ сразу.

Все варианты хранилищ →

Уведомления

Знать, что бекап прошел или упал, критически важно для защиты данных.

Уведомления в pg_dump

У pg_dump нет системы уведомлений. Придется:

  • Писать скрипты-обертки, проверяющие коды выхода
  • Интегрироваться с внешними системами мониторинга
  • Настраивать собственные цепочки алертов

Уведомления в Databasus

В Databasus уведомления встроены и отправляются в:

  • Slack
  • Discord
  • Telegram
  • Microsoft Teams
  • Email
  • Webhooks (для собственных интеграций)

Вы сами выбираете, какие события присылать: успешный бекап, ошибка или и то и другое.

Все каналы уведомлений →

Командные функции

pg_dump — однопользовательский инструмент командной строки. Databasus добавляет функции для совместной работы команд:

Командные возможности Databasus

  • Рабочие пространства: базы, уведомления и хранилища группируются по проектам или командам. Пользователи видят только те рабочие пространства, куда их пригласили.
  • Ролевая модель доступа: раздавайте права наблюдателя, редактора или администратора, чтобы управлять тем, что может делать каждый участник.
  • Журналы аудита: фиксируют все действия и изменения в системе. Необходимы для комплаенса и прослеживаемости.
  • Общие уведомления: командные каналы автоматически получают статусы бекапов.

Подробнее об управлении доступом →

Безопасность

Безопасность — то место, где Databasus добавляет больше всего по сравнению с «голым» pg_dump.

Безопасность pg_dump

pg_dump создает незашифрованные файлы бекапов. Чтобы их защитить, нужно:

  • Пропускать вывод через инструменты шифрования (gpg, openssl)
  • Отдельно управлять ключами шифрования
  • Обеспечивать безопасное хранение и ротацию ключей
  • Настраивать корректные права на файлы

Безопасность Databasus

Databasus обеспечивает безопасность на нескольких уровнях:

  • Шифрование AES-256-GCM: все пароли, токены и учетные данные зашифрованы. Ключ шифрования хранится отдельно от базы.
  • Уникальное шифрование бекапов: каждый файл бекапа шифруется своим ключом, выведенным из мастер-ключа, ID бекапа и случайной соли.
  • Доступ к базе только на чтение: требуются только права SELECT, поэтому данные не пострадают даже при компрометации.

Подробнее о безопасности Databasus →

Восстановление

Оба инструмента умеют восстанавливать бекапы, но процесс различается.

Восстановление бекапов pg_dump

Чтобы восстановить бекап pg_dump, нужно:

  1. Найти файл бекапа
  2. Расшифровать, если он зашифрован
  3. Распаковать, если он сжат
  4. Запустить pg_restore или psql с правильными параметрами

Восстановление бекапов Databasus

Databasus упрощает восстановление:

  • Скачивание в один клик: любой бекап можно скачать прямо из веб-интерфейса.
  • Автоматическая расшифровка: бекапы расшифровываются сами при скачивании.
  • Готовые команды восстановления: Databasus показывает точную команду pg_restore для каждого бекапа.
  • Параллельное восстановление: задействуйте несколько ядер CPU, чтобы быстрее восстанавливать большие базы.

Установка

Установка pg_dump

pg_dump поставляется вместе с PostgreSQL. Если у вас установлен PostgreSQL, у вас есть и pg_dump.

Установка Databasus

Databasus можно установить несколькими способами:

  • Скрипт в одну строку: поставит Docker (если нужно), настроит Databasus и включит автозапуск.
  • Docker run: одна команда для запуска со встроенным PostgreSQL.
  • Docker Compose: больше контроля над развертыванием.

Руководство по установке →

Вывод

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

Используйте pg_dump напрямую, если:

  • Вам нужны разовые выгрузки базы
  • Вам комфортно писать и поддерживать shell-скрипты
  • У вас уже есть инфраструктура автоматизации (Ansible, Terraform и т.д.)
  • Вам нужны только локальные бекапы без облачных хранилищ
  • Вы соло-разработчик с простыми задачами

Используйте Databasus, если:

  • Вы хотите автоматические бекапы по расписанию без написания скриптов
  • Вам нужно складывать бекапы в облако (S3, Google Drive и т.д.)
  • Вы хотите встроенное шифрование без ручного управления ключами
  • Вам нужны уведомления об успехе или ошибке бекапа
  • Вы работаете в команде и вам нужны функции совместной работы
  • Вам удобнее визуальный интерфейс, чем командная строка
  • Вы хотите автоматические политики хранения и очистку
  • Вам нужны физические бекапы, инкрементальные бекапы или Point-in-Time Recovery для аварийного восстановления

Databasus строит логические бекапы на pg_dump и расширяет его автоматизацией, безопасностью и командными функциями. Кроме того, Databasus поддерживает физические бекапы, инкрементальные бекапы с архивированием WAL и Point-in-Time Recovery — то, чего pg_dump не умеет в принципе.