Резервное копирование 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.
- если БД развернута в Kubernetes, выполните команду:
- Запустите клиента 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'