Возможно резервное копирование следующих компонентов системы:
Восстановление возможно только на ту же версию MITIGATOR, с которой была сделана резервная копия.
Резервная копия состоит из копии данных кластера (backup.sql
)
и копии данных каждого экземпляра (один или несколько backup_ownid.tgz
).
Выполняется на сервере, хранящем базу данных (primary, если настроена репликация).
Вариант А. При работающем MITIGATOR:
docker-compose exec postgres sh -c 'backup > /tmp/backup.sql'
docker cp mitigator_postgres_1:/tmp/backup.sql .
Вариант Б. При остановленном MITIGATOR:
docker-compose up -d postgres
docker-compose exec postgres sh -c 'backup > /tmp/backup.sql'
docker cp mitigator_postgres_1:/tmp/backup.sql .
docker-compose down postgres
После выполнения любой из приведенных команд следует вручную убедиться, что резервная копия создалась без ошибок:
tail backup.sql
Выполняется на каждом из экземпляров:
tar -czf backup_ownid.tgz -C /var/lib/docker/volumes/mitigator_own_id/ .
Выполняется на сервере, хранящем метрики.
Инструкция актуальна для версии v22.02 и выше. Для более старых версий используйте соответствующую версии инструкцию.
Если перед началом резервного копирования MITIGATOR остановлен, необходимо
запустить модуль хранения метрик (docker-compose up -d clickhouse
) и
остановить его после процедуры создания бэкапа (docker-compose stop clickhouse
).
Внимание! Резервные копии метрик, снятые на версиях v22.02.0-v22.04.3, будут иметь расширение .tar.gz
docker-compose exec clickhouse sh -c 'backup'
docker cp mitigator_clickhouse_1:/tmp/metrics.tar.zst .
docker-compose exec clickhouse rm /tmp/metrics.tar.zst
Команды приведены исходя из того, что файлы с резервной копией
находятся в рабочем каталоге /srv/mitigator
, однако местоположение файлов
может быть любым:
В этом случае в командах должен быть указан полный путь к файлам резервной копии.
Выполняется на сервере, хранящем базу данных (primary, если настроена репликация).
Остановить MITIGATOR:
docker-compose down
Удалить существующую базу:
docker volume rm mitigator_postgres
Запустить Postgres:
docker-compose up -d postgres && docker-compose logs -f postgres
Дождаться сообщения database system is ready to accept connections
,
нажать Ctrl+C.
Перенести бэкап в контейнер и восстановить данные:
docker cp backup.sql mitigator_postgres_1:/tmp
docker-compose exec postgres sh -c 'psql mitigator </tmp/backup.sql >/tmp/restore.log'
Выполняется на каждом экземпляре.
Развернуть volume own_id:
tar -xzf backup_ownid.tgz -C /var/lib/docker/volumes/mitigator_own_id/ .
Запустить MITIGATOR:
docker-compose up -d
Если на этапе восстановления появились ошибки, технической поддержке будет
нужен их текст и файл restore.log
, который можно забрать из контейнера так:
docker cp mitigator_postgres_1:/tmp/restore.log .
Выполняется на сервере, хранящем метрики.
Запустить Clickhouse (если остановлен)
docker-compose up -d clickhouse && docker-compose logs -f clickhouse | grep -qm1 "03-create-graphite_tagged-table.sql"
Перенести бэкап в контейнер и восстановить данные
Внимание! Резервные копии метрик, снятые на версиях v22.02.0-v22.04.3, будут иметь расширение .tar.gz
docker cp metrics.tar.gz mitigator_clickhouse_1:/tmp
docker-compose exec clickhouse sh -c 'restore /tmp/metrics.tar.zst'
Удалить архив с бэкапом из контейнера
docker-compose exec clickhouse rm /tmp/metrics.tar.zst