Skip to main content
Version: 1.7

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

Перед обновлением TRON.ASOC создайте резервную копию БД ClickHouse, чтобы при неудачном обновлении вернуться к прежнему состоянию без потери данных.

warning

Перед началом работ остановите контейнеры 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​

warning

Эта инструкция рассчитана на использование встроенного 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;
note

Актуальное состояние БД хранится в директории /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'