Копия базы каждую ночь: дампы по расписанию в GoBackup
GoBackup снимает дамп базы по расписанию, шифрует и отправляет в удалённое хранилище. Разбираем настройку, лицензию MIT, правило 3-2-1 и то, чего инструмент не делает: восстановление и репликацию.
Копия папки с базой ещё не копия базы
У владельца CRM, интернет-магазина или бота с историей заказов вся ценность лежит в базе данных. Копируют её по-разному. Самый частый способ: ночью забрать папку с файлами базы вместе со всем остальным. Пока база работает, она пишет в эти файлы, и копия, снятая в неудачный момент, может не открыться при восстановлении. Выясняется это в тот день, когда копия нужна.
Правильнее снимать дамп: утилита самой СУБД читает данные через сервер и пишет цельный файл. Копирование папок мы разбирали в статье про Duplicati. Здесь речь о другом: дампы баз по расписанию, с шифрованием и проверкой.
Что такое GoBackup
Репозиторий github.com/gobackup/gobackup живёт с сентября 2017 года, в нём около 540 коммитов и примерно 3 тысячи звёзд. Лицензия указана в файле LICENSE: MIT, правообладатель Jason Lee. Эта лицензия разрешает коммерческое использование, от вас требуется только сохранить текст лицензии. Последний релиз v3.1.1 вышел в июле 2026, последний коммит в основной ветке датирован августом 2026. Релизы выходят нечасто, но проект не заброшен.
Авторы пишут, что сделали его вместо Ruby-утилиты backup/backup, чтобы не тащить на сервер Ruby. Ставится одним бинарником: скриптом установки из README, через brew install gobackup или из Docker-образа. Кроме баз он умеет складывать в архив обычные папки и файлы, а большие архивы нарезать на части.
Как выглядит настройка
Вся настройка живёт в одном YAML-файле, который GoBackup ищет в ~/.gobackup/gobackup.yml или /etc/gobackup/gobackup.yml. Одна «модель» описывает один набор: что копируем, как жмём, чем шифруем, куда кладём и когда. Схема по образцу из README:
models:
crm:
schedule:
every: "1day"
at: "03:00"
databases:
main:
type: postgresql
database: crm_production
compress_with:
type: tgz
encrypt_with:
type: openssl
password: длинный-пароль
storages:
s3:
type: s3
bucket: my_app_backup
keep: 14
Расписание задаётся либо cron-выражением, либо парой «каждый день в такое-то время». Параметр keep у хранилища оставляет только последние N копий, старые удаляются сами. Команда gobackup start запускает демон с расписанием и веб-интерфейсом на порту 2703, gobackup perform делает копию прямо сейчас.
Шифрование и куда класть копию
Шифрование идёт через openssl, по умолчанию aes-256-cbc, и без пароля в конфиге модель просто не сработает. Пароль лежит в конфиге, поэтому права на этот файл закрываем, а сам пароль храним ещё в одном месте отдельно. Потеряли пароль, и копия превратилась в набор случайных байтов.
Хранилищ много: локальная папка, FTP, SFTP, SCP, Amazon S3, Google Cloud Storage, Azure Blob Storage, Backblaze B2, Cloudflare R2, DigitalOcean Spaces, MinIO, WebDAV и ещё несколько китайских облаков. В одной модели можно указать сразу два хранилища, например папку на соседнем диске и внешний сервер по SFTP.
Это ложится на правило 3-2-1. В распространённой формулировке оно звучит так: минимум три копии данных, две из них на разных носителях, одна за пределами площадки. Его приводят среди рекомендаций CISA в документе «Data Backup Options». Рабочая база плюс локальный дамп плюс дамп на внешнем сервере дают как раз три копии, из которых одна уехала с площадки.
Что важно учесть
GoBackup сам базу не читает. Он запускает утилиты СУБД: для PostgreSQL это pg_dump, для MySQL mysqldump. В README стоит «No dependencies», и это про сам бинарник. Утилиты баз должны быть доступны там, где он работает. В официальном Docker-образе клиенты PostgreSQL, MySQL, MongoDB, Redis и SQLite уже установлены, а при установке бинарником на сервер их ставим мы.
Дамп большой базы читает её целиком, поэтому нагружает диск и процессор. Ночное окно обычно спасает, но размер и время снятия надо измерить заранее. В команде mysqldump, которую собирает GoBackup, флага --single-transaction по умолчанию нет, его добавляют через параметр args. Что именно ставить, зависит от движка таблиц.
Ночной дамп не заменяет репликацию. Если сервер упадёт в 17:00, вы вернётесь к состоянию на 03:00, и день заказов придётся восстанавливать вручную. Для сервиса, где такая потеря неприемлема, нужны репликация или непрерывное архивирование, а дамп остаётся запасным слоем под ними.
Команды восстановления в GoBackup нет: в списке команд только perform, start и run. Расшифровать, распаковать и залить дамп в чистую базу надо руками, и этот путь нужно прогнать до аварии.
Веб-интерфейс включён по умолчанию и слушает все адреса сервера, порт 2703. Логин и пароль задаются в секции web конфига, а порт стоит закрыть файрволом от внешнего мира.
Что можно сделать уже сейчас
Первое: выписать, какие базы у вас есть. CRM, сайт, бот, учётная система, и у каждой размер и место, где она лежит. Часто обнаруживается, что у одной из них копии нет вообще.
Второе: поставить GoBackup на тестовую машину и один раз выполнить gobackup perform для одной базы. Посмотреть, сколько весит архив и сколько времени ушло.
Третье: поднять копию на чистом сервере. Расшифровать, распаковать, залить в пустую базу, открыть CRM и проверить, что последние заказы на месте. Засечь время: это и есть ваш реальный срок восстановления.
Четвёртое: подключить уведомление в Telegram и повесить расписание. GoBackup умеет слать сообщение об успехе и об ошибке. Копия, которая молча перестала создаваться три месяца назад, хуже отсутствующей, потому что вы на неё рассчитываете.
Если делать это самим некогда, настроим копии баз и тест восстановления под вашу инфраструктуру. Общую картину по отказоустойчивости мы описывали в статье про мониторинг и бэкапы для малого бизнеса.
Частые вопросы
Можно ли копировать не только базы, но и папки с файлами?
Да, GoBackup умеет складывать в tar-архив произвольные папки и файлы, например загрузки пользователей или конфиги. Для больших файловых деревьев с историей версий удобнее инструменты вроде Duplicati.
Куда класть копии, если нет зарубежных облаков?
Подойдёт любой сервер с доступом по SFTP или SCP, WebDAV-хранилище или свой MinIO. Для S3-совместимых хранилищ в настройках есть параметр endpoint, но совместимость конкретного провайдера проверяем на тестовой копии, прежде чем на него рассчитывать.
Сколько это стоит?
Сама программа бесплатна. Платить придётся за место под копии и за настройку с проверкой восстановления. Ориентиры по работам есть на странице с ценами.
Коротко о главном
GoBackup закрывает типовую задачу малого бизнеса: ночной дамп базы, шифрование, внешнее хранилище, сообщение в Telegram. Он бесплатный и ставится за вечер. Репликацию он не заменяет. Восстановление из его копий вы запускаете вручную, поэтому репетиция нужна заранее.
Есть CRM, сайт или бот на своём сервере и нет уверенности, что копию базы можно развернуть? Напишите мне в Telegram слово «ДАМП». Посмотрим, что у вас стоит, настроим копии и прогоним восстановление на чистой машине.
Что я делаю для бизнеса
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»
12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.
Готовы обсудить вашу задачу?
Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


