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

Статья описывает состав резервной копии и подготовку к восстановлению Docker-поставки со встроенной MariaDB или PostgreSQL. Перед выполнением операций администратору требуется процедура для используемой версии и СУБД. Для внешней БД порядок согласуется с ее администратором.

Состав резервной копии#

Полная копия установки включает:

  • Основную и архивную базы MariaDB либо всю базу PostgreSQL, включая основную и архивную схемы.
  • .env, docker-compose.yml и используемый docker-compose.override.yml.
  • backend/config, конфигурацию nginx и сертификаты.
  • Данные Хранилища из тома orchestrator-storage.
  • Данные Vault, файл .vault_keys.json и vault/config/vault.hcl, если используется Vault.

Дамп БД не содержит остальные перечисленные файлы и тома. Необходимо сохранить прежний ORCHESTRATOR_ENCRYPTION_KEY и ключи распечатки Vault: без них восстановленные секреты могут быть недоступны.

Создание и проверка копии#

До остановки сервисов необходимо получить у технической поддержки Sherpa инструкцию резервного копирования и восстановления БД для используемой версии и СУБД. Она содержит команды для БД. Отдельно требуется подготовить и проверить порядок копирования и восстановления конфигурации, сертификатов, Хранилища и Vault с учетом подключенных томов. Без проверенного восстановления всех компонентов копия установки не считается полной.

  1. Необходимо согласовать окно обслуживания, проверить свободное место и выбрать защищенный каталог копии.
  2. Требуется остановить backend, WebSocket, nginx и внешние интеграции, которые записывают данные. Контейнер выбранной БД остается запущенным.
  3. Необходимо создать дамп соответствующей СУБД по полученной инструкции и согласованную по времени копию файлов и томов. Для нестандартных имен БД команды требуется адаптировать до запуска.
  4. Необходимо проверить код завершения каждой команды, непустой дамп и контрольные суммы. Копия должна быть перенесена за пределы сервера с сохранением ограничений доступа.
  5. Возможность восстановления проверяется на отдельном экземпляре БД и отдельных томах. Наличие файла дампа само по себе не подтверждает пригодность копии.

Если обновление или восстановление не планируется, после завершения копирования необходимо вернуть сервисы в работу по полученной инструкции для выбранной СУБД.

Между созданием дампа и обновлением нельзя вновь запускать источники записи. Иначе копия перестанет соответствовать состоянию установки перед обновлением.

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

Восстановление заменяет текущие данные целевой БД. Перед ним необходимы проверенный дамп и отдельная свежая копия текущего состояния. Приложение и внешние источники записи должны оставаться остановленными.

При откате сначала возвращаются совместимые с дампом образы и конфигурация. Затем запускается только БД и выполняется восстановление по разделу нужной СУБД в полученной инструкции для используемой версии и СУБД. Для PostgreSQL восстановление выполняется в заново созданную базу, чтобы не сохранить объекты более новых миграций. Тестовое восстановление MariaDB допускается только в изолированном экземпляре и томе.

Нельзя удалять рабочие тома командой docker compose down -v. Backend запускается только после восстановления БД, файлов и секретов: при старте он может применить миграции.

После запуска необходимо проверить вход, доступ к Процессам и Хранилищу, Лицензии, чтение секретов и безопасный тестовый сценарий. Исходная копия сохраняется до подтверждения результата.