Перейти к основному содержимому
Версия: 1.7

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

осторожно

Перед началом работ остановите контейнеры core, reporter и front, взаимодействующие с контейнером ClickHouse.

Остановка контейнера ClickHouse не требуется, так как если остановить контейнер ClickHouse, резервное копирование может быть неуспешным.

Резервное копирование БД ClickHouse включает следующие этапы:

  1. Подключение к терминалу контейнера и запуск клиента ClickHouse
  2. Создание резервной копии в S3
  3. Подключение к терминалу контейнера для восстановления
  4. Запуск восстановления БД

Подключение к терминалу контейнера и запуск клиента ClickHouse

Чтобы подключиться к терминалу контейнера и запустить клиента ClickHouse, выполните следующие шаги:

  1. Выполните команду для подключения к терминалу в зависимости от места развертывания ClickHouse:
    • если БД развернута в Kubernetes, выполните команду: kubectl exec -it asoc-clickhouse-<номер_пода> -n namespace -- /bin/bash;
    • если БД развернута в Docker Compose, выполните команду: docker exec -it tron-clickhouse-<номер_контейнера> /bin/bash.
  2. Запустите клиента ClickHouse командой: clickhouse-client --database=asoc_db --user=<пользователь> --port=9000 --host=localhost

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

предупреждение

Эта инструкция рассчитана на использование встроенного S3-хранилища, которое разворачивается в вашей инфраструктуре при установке TRON.ASOC. Если вместо этого используется внешнее хранилище (External S3), замените логин и токен в команде из шага 2 на соответствующие учетные данные из ващего внешнего S3.

Чтобы создать резервную копию в S3, выполните следующие шаги:

  1. Запустите клиента ClickHouse командой: clickhouse-client --database=asoc_db --user=<пользователь> --port=9000 --host=localhost
  2. Введите следующий 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, выполните следующие шаги:

  1. Запустите клиента ClickHouse командой: clickhouse-client --database=asoc_db --user=<пользователь> --port=9000 --host=localhost
  2. Удалите старую БД: DROP DATABASE
  3. Выполните восстановление:
RESTORE DATABASE asoc_db FROM S3(
'https://URL_Вашего_S3/clickhouse-asoc/asoc_db_test_1.zip',
'ПОЛЬЗОВАТЕЛЬ_S3',
'ТОКЕН_S3'