Бэкапы
Бэкапы базы данных
Раздел управления резервными копиями PostgreSQL. Позволяет создавать бэкапы вручную и настраивать автоматическое резервное копирование по расписанию.
Основные возможности
- Создание бэкапа вручную из веб-интерфейса
- Автоматический бэкап по расписанию (каждую ночь в 4:00)
- Просмотр истории бэкапов с размерами и статусами
- Настройка количества хранимых бэкапов (ротация)
- Восстановление через консоль сервера
Что включается в бэкап
Бэкап содержит все данные базы, кроме:
- Тел запросов и ответов (
api_requests.request_body,api_requests.response_body) — исключены намеренно для уменьшения размера
Формат бэкапа: PostgreSQL custom format (pg_dump --format=custom), что обеспечивает сжатие и возможность выборочного восстановления.
Хранение файлов
Внутри контейнера файлы лежат в /app/backups/. В стандартной установке это
каталог backups/ рядом с compose.prem.yml — например /opt/prem/backups/,
то есть бэкапы доступны прямо на сервере, без обращения к контейнеру.
Имена файлов: backup_YYYYMMDD_HHMMSS.dump
⚠️ Бэкапа базы недостаточно для полного восстановления. Он содержит
только базу и не включает ни загруженные файлы и вложения, ни файл.envс
ключами шифрования. Без.envзашифрованные поля (ключи API узлов, пароль
подключения к LDAP) не восстановятся даже из корректного бэкапа базы.
Полная процедура резервного копирования и восстановления описана в инструкции
по установке.
Настройки
| Параметр | По умолчанию | Описание |
|---|---|---|
| Автобэкап | Выключен | Включить автоматический бэкап по расписанию |
| Хранить бэкапов | 3 | Количество последних бэкапов для хранения |
Настройки доступны в разделе Настройки → «Бэкапы базы данных».
Ротация бэкапов
После каждого успешного бэкапа система автоматически удаляет старые файлы, оставляя только N последних (по настройке «Хранить бэкапов»). Удаляются как файлы на диске, так и записи в базе данных.
Создание бэкапа вручную
- Перейдите в раздел Система → Бэкапы
- Нажмите кнопку «Создать бэкап»
- Подтвердите действие
- Бэкап запускается в фоне — статус обновится на странице
⚠️ Одновременно может выполняться только один бэкап. Если бэкап уже запущен, кнопка недоступна.
Восстановление из бэкапа
Восстановление выполняется только через консоль сервера. Веб-интерфейс не поддерживает восстановление.
⚠️ Внимание: восстановление перезапишет все текущие данные в базе. Убедитесь, что у вас есть актуальный бэкап перед выполнением операции.
Шаг 1: Найти нужный файл
Бэкапы лежат в каталоге установки, поэтому проще всего посмотреть их прямо на
сервере:
ls -lh /opt/prem/backups/
Пример вывода:
-rw-r--r-- 1 root root 12M Mar 12 04:00 backup_20260312_040000.dump
-rw-r--r-- 1 root root 11M Mar 11 04:00 backup_20260311_040000.dump
-rw-r--r-- 1 root root 11M Mar 10 04:00 backup_20260310_040000.dump
Шаг 2: Восстановить бэкап
cd /opt/prem
sudo ./prem exec app bash -c \
'PGPASSWORD="$DATABASE_PASSWORD" pg_restore --clean --if-exists \
-h "$DATABASE_HOST" -U "$DATABASE_USER" -d "$DATABASE_NAME" \
/app/backups/backup_20260312_040000.dump'
Параметры подключения берутся из переменных окружения контейнера, поэтому имя
базы и пароль подставлять вручную не нужно.
Шаг 3: Перезапустить приложение
cd /opt/prem
sudo ./prem restart app solid_queue
Автоматический бэкап
При включённом автобэкапе задача DatabaseBackupJob запускается каждую ночь в 4:00 через Solid Queue. Расписание задано в config/recurring.yml.
Если автобэкап выключен в настройках, задача запускается, но сразу завершается без создания бэкапа.