Альтернатива pg_dump
Для логических бекапов Databasus построен поверх pg_dump. Databasus не заменяет pg_dump, а надстраивается над ним: управление бекапами, веб-интерфейс, автоматическое расписание, интеграция с облачными хранилищами, уведомления, командная работа и встроенное шифрование. Помимо логических бекапов Databasus также поддерживает физические бекапы, инкрементальные бекапы с архивированием WAL и Point-in-Time Recovery.
Краткое сравнение
Вот как Databasus расширяет базовую функциональность pg_dump:
| Возможность | pg_dump | Databasus |
|---|---|---|
| Движок бекапов | pg_dump | Построен на pg_dump |
| Управление бекапами | ❌ Нет | ✅ Да |
| Поддержка других СУБД | Только PostgreSQL | PostgreSQL, 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
- 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, нужно:
- Найти файл бекапа
- Расшифровать, если он зашифрован
- Распаковать, если он сжат
- Запустить
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 не умеет в принципе.