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

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

Способ развёртыванияКоманды на этой странице относятся к поставке Docker Compose. Откройте соответствующую процедуру для Kubernetes и Helm.

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

Сохраняйте данные приложения, конфигурацию установленной версии и файл лицензии. Копии храните отдельно от сервера установки, с доступом только уполномоченных сотрудников, с шифрованием при передаче и хранении. Резервное копирование и восстановление выполняются штатными средствами операционной системы и Docker Compose; скрипты резервного копирования в поставочный пакет не входят.

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

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

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

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

  • postgres_data
  • clickhouse_data
  • kafka_data
  • redis_data

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

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

Убедитесь, что на сервере достаточно свободного места, и остановите приложение штатной командой Docker Compose:

bash
docker compose -p ms-onprem -f docker-compose.onprem.yml --env-file .env stop

Скопируйте данные (тома приложения) и конфигурацию в защищённое хранилище:

bash
# Копирование тома PostgreSQL
docker run --rm -v ms-onprem-postgres-data:/data -v /backup:/backup \
  alpine tar czf /backup/postgres-data.tar.gz -C /data .

# Копирование тома ClickHouse
docker run --rm -v ms-onprem-clickhouse-data:/data -v /backup:/backup \
  alpine tar czf /backup/clickhouse-data.tar.gz -C /data .

# Копирование тома Kafka
docker run --rm -v ms-onprem-kafka-data:/data -v /backup:/backup \
  alpine tar czf /backup/kafka-data.tar.gz -C /data .

# Копирование тома Redis
docker run --rm -v ms-onprem-redis-data:/data -v /backup:/backup \
  alpine tar czf /backup/redis-data.tar.gz -C /data .

# Копирование конфигурации установки
cp -a .env manifest.json docker-compose.onprem.yml clickhouse /backup/

Запустите приложение, проверьте доступность страницы входа и зафиксируйте дату, состав и результат копирования:

bash
docker compose -p ms-onprem -f docker-compose.onprem.yml --env-file .env start

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

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

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

Сохраните текущую конфигурацию и данные в отдельную копию, затем остановите приложение штатной командой Docker Compose:

bash
docker compose -p ms-onprem -f docker-compose.onprem.yml --env-file .env stop

Восстановите данные и конфигурацию из выбранной копии. Восстанавливайте manifest.json schema v2 вместе с .env:

bash
# Восстановление тома PostgreSQL
docker run --rm -v ms-onprem-postgres-data:/data -v /backup:/backup \
  alpine sh -c 'rm -rf /data/* /data/.[!.]* /data/..?* && tar xzf /backup/postgres-data.tar.gz -C /data'

# Восстановление тома ClickHouse
docker run --rm -v ms-onprem-clickhouse-data:/data -v /backup:/backup \
  alpine sh -c 'rm -rf /data/* /data/.[!.]* /data/..?* && tar xzf /backup/clickhouse-data.tar.gz -C /data'

# Восстановление тома Kafka
docker run --rm -v ms-onprem-kafka-data:/data -v /backup:/backup \
  alpine sh -c 'rm -rf /data/* /data/.[!.]* /data/..?* && tar xzf /backup/kafka-data.tar.gz -C /data'

# Восстановление тома Redis
docker run --rm -v ms-onprem-redis-data:/data -v /backup:/backup \
  alpine sh -c 'rm -rf /data/* /data/.[!.]* /data/..?* && tar xzf /backup/redis-data.tar.gz -C /data'

# Восстановление конфигурации установки (manifest.json вместе с .env)
cp -a /backup/.env /backup/manifest.json /backup/docker-compose.onprem.yml /backup/clickhouse .

Запустите приложение, откройте страницу входа и проверьте доступность данных:

bash
docker compose -p ms-onprem -f docker-compose.onprem.yml --env-file .env start