Резервное копирование и восстановление

Регулярное резервное копирование данных и конфигурации, и восстановление из копии той же установки.

Способ развёртыванияКоманды на этой странице относятся к поставке Docker Compose. Откройте соответствующую процедуру для Kubernetes и Helm.
Термины этого руководства
  • Обратный прокси-сервер (reverse proxy) принимает внешние запросы и передаёт их службам MassAccess.
  • Защита транспортного уровня (Transport Layer Security, TLS) шифрует соединение с публичным адресом.
  • Проверка состояния (health check) подтверждает готовность службы отвечать на запросы.
  • Регистрация экземпляра (enrollment) связывает установленный экземпляр с созданной лицензией.

Резервное копирование

Пакет включает backup.sh и restore.sh. Cold backup сохраняет owned application/transport volumes, private .env, metering/transport PKI, credentials, identities и exact release metadata. Архивы 0600 и каталог 0700 содержат secrets; при передаче/хранении вне local private store требуется утверждённое шифрование.

Рекомендуемый график

Ежедневные копии — минимум за последние 7 дней; еженедельные — минимум за последний месяц; ежемесячные — минимум за последний год.

Состав томов хранения данных

Данные хранятся в томах:

  • postgres_data
  • clickhouse_data
  • kafka_data
  • kafka_secrets
  • kafka_shared_config
  • redis_data
  • broker_data
  • receiver_state
  • agent_state

Не сохраняйте резервные копии в Git, issue, CI-артефактах или открытых каталогах.

Порядок резервного копирования

Убедитесь, что хватает места. Скрипт под общим lock остановит Receiver admission, завершит Agent drain и остановит всех writers перед копированием:

bash
bash backup.sh

Для isolated restore оставьте исходную установку выключенной. Сохраните путь private backup, состав и время; исходные volumes остаются на месте:

bash
bash backup.sh --leave-stopped

Обычный backup сам возобновляет ранее работавшие контейнеры. Успешное архивирование не доказывает restore; проверьте состояние отдельно:

Настройка входящих сообщений MAX и Telegram для этой установки. После готовности ingress повторите подключение бота и отдельно проверьте доставку настоящего сообщения.

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

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

Порядок восстановления

Исходная установка должна быть выключена. Сохраните её private backup и failing/current state; не удаляйте исходные volumes.

bash
bash backup.sh --leave-stopped

Выполните restore из доверенного lifecycle package в пустой каталог и новый project. Existing volumes не перезаписываются. Повтор той же команды продолжает только journal-bound operation с тем же backup.

bash
mkdir -m 700 /srv/massaccess-restored
bash restore.sh --root /srv/massaccess-restored \
  --backup /secure/backup/offline-UTC-pid --project ms-onprem-restored

complete_offline не запускает actors. Подтвердите source off, свободные host ports и штатный license HW binding; затем запустите полный model и проверьте реальные retained messages, idempotency, route receipts и application data.

bash
cd /srv/massaccess-restored
docker compose -p ms-onprem-restored --env-file .env \
  -f docker-compose.onprem.yml -f docker-compose.transport.yml up -d --pull never
python3 transport.py local-ready --timeout 300