Резервное копирование ClickHouse
Перед обновлением TRON.ASOC создайте резервную копию БД ClickHouse, чтобы при неудачном обновлении вернуться к прежнему состоянию без потери данных.
Перед началом работ остановите контейнеры core, reporter и front, взаимодействующие с контейнером ClickHouse.
Остановка контейнера ClickHouse не требуется, так как если остановить контейнер ClickHouse, резервное копирование может быть неуспешным.
Резервное копирование БД ClickHouse включает следующие этапы:
- Подключение к терминалу контейнера и запуск клиента ClickHouse
- Создание резервной копии в S3
- Подключение к терминалу контейнера для восстановления
- Запуск восстановления БД
Подключение к терминалу контейнера и запуск клиента ClickHouse
Чтобы подключиться к терминалу контейнера и запустить клиента ClickHouse, выполните следующие шаги:
-
Выполните команду для подключения к терминалу в зависимости от места развертывания ClickHouse:
-
если БД развернута в Kubernetes, выполните команду:
kubectl exec -it asoc-clickhouse-<номер_пода> -n namespace -- /bin/bash -
если БД развернута в Docker Compose, выполните команду:
docker exec -it tron-clickhouse-<номер_контейнера> /bin/bash
-
-
Запустите клиента ClickHouse командой:
clickhouse-client --database=asoc_db --user=<пользователь> --port=9000 --host=localhost
Создание резервной копии в S3
Эта инструкция рассчитана на использование встроенного S3-хранилища, которое разворачивается в вашей инфраструктуре при установке TRON.ASOC. Если вместо этого используется внешнее хранилище (External S3), замените логин и токен в команде из шага 2 на соответствующие учетные данные из вашего внешнего S3.
Чтобы создать резервную копию в S3, выполните следующие шаги:
-
Запустите клиента ClickHouse командой:
clickhouse-client --database=asoc_db --user=<пользователь> --port=9000 --host=localhost -
Введите следующий SQL-запрос:
BACKUP DATABASE asoc_db TO S3('https://URL_Вашего_S3/clickhouse-asoc/asoc_db_test_1.zip','ПОЛЬЗОВАТЕЛЬ_S3','ТОКЕН_S3')SETTINGS compression_method='zstd', compression_level=3;
Актуальное состояние БД хранится в директории /var/lib/clickhouse.
Подключение к терминалу контейнера для восстановления БД
Чтобы повторно подключиться к терминалу контейнера, выполните шаг 1 из инструкции выше.
Запуск восстановления БД
Чтобы запустить восстановление ClickHouse, выполните следующие шаги:
-
Запустите клиента ClickHouse командой:
clickhouse-client --database=asoc_db --user=<пользователь> --port=9000 --host=localhost -
Удалите старую БД:
DROP DATABASE. -
Выполните восстановление:
RESTORE DATABASE asoc_db FROM S3('https://URL_Вашего_S3/clickhouse-asoc/asoc_db_test_1.zip','ПОЛЬЗОВАТЕЛЬ_S3','ТОКЕН_S3'