Настройка ClickHouse для работы с Backup Wrapper

Backup Wrapper использует утилиту clickhouse-backup для работы с резервными копиями. Для корректной работы сервиса предварительно необходимо настроить базу данных.

Утилита clickhouse-backup устанавливается вместе с Backup Wrapper. Подробности приведены в разделе Установка и настройка Backup Wrapper.

Сервис Backup Wrapper использует подход с созданием резервных DIFF-копий (через параметр --diff-from-remote). Благодаря этому подходу сервис создает одну полную резервную копию базы данных, а все последующие копии содержат только изменения относительно корневой резервной копии.

Вы можете настроить процесс создания резервных DIFF-копий. Например, в первый день недели создавать полную копию базы данных, а в каждый последующий день создавать DIFF-копию. При этом каждая DIFF-копия создается от полной копии базы данных, а не от предыдущей DIFF-копии. С началом новой недели цикл повторяется.

Преимущества данного подхода:

  • Упрощается восстановление базы данных: нужна только полная копия и последняя DIFF-копия.

  • Исключаются проблемы с разрывом цепочки, так как каждая DIFF-копия независима от других DIFF-копий.

Рекомендуется хранить минимум два полных цикла резервных копий: две полные копии и DIFF-копии, созданные от них.

Настройка ClickHouse

Настройка базы данных ClickHouse состоит из следующих этапов:

Все действия необходимо производить на физическом сервере или виртуальной машине, на которых развернута база данных ClickHouse.

Создание пользователя для работы с резервными копиями

  1. Подключитесь к консольному клиенту ClickHouse, выполнив команду:

    clickhouse-client
  2. Создайте пользователя для работы с резервными копиями и выдайте ему необходимые права, выполнив следующие SQL-запросы:

    -- Создание пользователя.
    CREATE USER backup_user IDENTIFIED BY '<password>';
    
    -- Выдача прав на чтение данных и метаданных.
    GRANT SELECT ON *.* TO backup_user;
    GRANT SHOW TABLES ON *.* TO backup_user;
    GRANT SHOW DATABASES ON *.* TO backup_user;
    GRANT SHOW COLUMNS ON *.* TO backup_user;
    GRANT SHOW DICTIONARIES ON *.* TO backup_user;
    
    -- Выдача права на создание локальной копии указанной партиции таблицы ClickHouse (FREEZE).
    GRANT ALTER FREEZE PARTITION ON *.* TO backup_user;
    
    -- Выдача доступа к системным таблицам.
    GRANT SELECT ON system.* TO backup_user;
    
    -- Выдача прав на восстановление данных.
    GRANT INSERT ON *.* TO backup_user;
    GRANT CREATE TABLE ON *.* TO backup_user;
    GRANT CREATE DATABASE ON *.* TO backup_user;
    GRANT ALTER TABLE ON *.* TO backup_user;
    GRANT DROP TABLE ON *.* TO backup_user;

    Здесь:

    • <password> — пароль нового пользователя.

    Вы можете проверить выданные права, выполнив SQL-запрос:

    SHOW GRANTS FOR backup_user;

Настройка утилиты clickhouse-backup

  1. Создайте файл config.yml в директории /etc/clickhouse-backup/.

  2. Добавьте в файл config.yml следующие строки:

    general:
      disable_progress_bar: true
      max_file_size: 1073741824  # 1 ГБ.
      backups_to_keep_local: 0   # Резервные копии не хранятся локально (Backup Wrapper управляет этим).
      backups_to_keep_remote: 0  # Резервные копии не удаляются автоматически.
      remote_storage: s3
    
    clickhouse:
      host: localhost
      port: 9000
      username: backup_user
      password: "<password>"
      skip_tables:
        - system.*
        - INFORMATION_SCHEMA.*
        - information_schema.*
      skip_disks:
        - cold_disk_1
      timeout: 5m
      freeze_by_part: false
      freeze_by_part_where: ""
    
    # S3 настройки передаются через переменные из файла окружения wrapper.
    s3:
      access_key: "${S3_ACCESS_KEY}"
      secret_key: "${S3_SECRET_KEY}"
      bucket: "${S3_BUCKET}"
      endpoint: "${S3_ENDPOINT}"
      region: "${S3_REGION}"
      path: "${S3_PATH}"
      compression_format: tar
      compression_level: 1
      sse: ""
      disable_ssl: false
      force_path_style: true  # Для хранилища Minio.

    Здесь:

    • <password> — пароль пользователя backup_user, созданного ранее.

Многоуровневое хранения данных

Для высоконагруженных инсталляций рекомендуется разделение хранилища на уровни (hot/cold). Это позволяет:

  • Оптимизировать ресурсы, затрачиваемые на хранение резервных копий.

  • Ускорить резервное копирование, так как копируются только свежие данные.

  • Ускорить восстановление данных из резервной копии.

Подробности по настройке многоуровневого хранилища ClickHouse приведены в разделе Настройка многоуровневого хранилища ClickHouse.

Была ли полезна эта страница?

Обратная связь