clickhouse-backup – утиліта для резервного копіювання та відновлення

 

В процесі використання ClickHouse стало питання резервного копіювання та відновлення. Як то кажуть резервних копій багато не буває, тому крім aws volume snapshots потрібно налаштувати додатковий варіант. В ClickHouse для цього варіантів не багато, зручним вважаю використовувати чудовий інструмент як clickhouse-backup.

Підготовка

Для початку необхідно встановити його, подивитися останні версії можемо тут. Обираємо необхідний пакет або тип встановлення який зручніший для Вас. В моєму випадку буду встановлювати з rpm пакету на AMAZON Linux2. Завантажуємо на сервер ClickHouse використовуючи wget:

Далі потрібно налаштувати утиліту clickhouse-backup. Після встановлення створилась директорія /etc/clickhouse-backup/ в якій розташований приклад конфігураційного файлу config.yml.example, прочитаємо його використовуючи cat або самою утилітою яка роздрукує конфігурацію за замовчуванням:

Конфігураційний файл розділений на декілька блоків, в яких є короткий опис необхідних параметрів. Нас буде цікавити блок clickhouse, де потрібно додати логін і пароль користувача серверу clickhouse. Якщо розглянути детальніше, то маємо багато можливостей по віддаленому зберіганню резервних копій після їх створення і не тільки.

Нам необхідно або створити файл config.yml і заповнити його або скопіювати вже наявний config.yml.example в config.yml, обираємо другий варіант:

редагуємо файл config.yml, шукаємо блок clickhouse і додаємо ім’я користувача і пароль для підключення до clickhouse:

зберігаємо зміни, перевіряємо підключення утилітою clickhouse-backup до clickhouse:

Перевірка підключення пройшла успішно, отримали список доступних таблиць. Переходимо до створення резервних копій).

Створення резервної копії

Будемо створювати локальні резервні копії, без переміщення до віддаленого сховища. Для створення повної копії баз використовуємо наступну команду:

якщо необхідно утиліта дозволяє створити резервні копії окремих таблиць, як це зробити дивимося в help:

Утиліта дозволяє переглянути список створених копій:

Взагалі рекомендую ознайомитись з доступними ключами та можливостями clickhouse-backup скориставшись ключем —help:

За замовчуванням всі резервні копії створюються в директорії /var/lib/clickhouse/backup, переглянемо її місткість:

де:

  • metadata – в ньому знаходиться DDL SQL, який потрібний під час відновлення;
  • shadow – данні баз даних, які отримали під час резервного копіювання;

 

Відновлення з резервної копії

Тепер видалимо базу day_track, щоб перевірити процес відновлення:

Для відновлення обираємо наш створений бекап 12-04-22-full-clickhouse-db і відновлюємо командою clickhouse-backup restore

підключаємось до clickhouse, перевіряємо список баз даних:

як бачимо, видалена база повернулася в стрій.

Далі за бажання, можемо налаштувати cron на сервері clickhouse який буде запускати резервне копіювання або скористатися іншими утилітами для автоматизації даного процесу.

Корисні посилання

Click to rate this post!
[Total: 0 Average: 0]