Важно: Данный раздел актуален для Платформы данных в Публичном облаке и On-Premise.
Так как данные на всех хостах кластера могут отличаться, то процедуру резервного копирования (бэкапа) нужно делать для каждого хоста. Если Вы уверены, что данные на всех хостах кластера синхронизированы - можно снимать бэкап с одного хоста.
Для того чтобы сформировать бекап выполните следующие действия:
1. Создайте папку для бэкапов:
mkdir /backups
chown clickhouse:clickhouse /backups/
2. Создайте конфигурационный файл с указанием места назначения бэкапов - /etc/clickhouse-server/config.d/backup_disk.xml:
<clickhouse>
<storage_configuration>
<disks>
<backups>
<type>local</type>
<path>/backups/</path>
</backups>
</disks>
</storage_configuration>
<backups>
<allowed_disk>backups</allowed_disk>
<allowed_path>/backups/</allowed_path>
</backups>
</clickhouse>
3. В консоли clickhouse-client выполните команду:
BACKUP ALL TO Disk('backups', 'all_20240408_150405.zip');
Где all_20240408_150405 - произвольное, уникальное имя бэкапа.
Вся информация о бэкапах (в том числе и неуспешных) хранится в системной таблице system.backups:
SELECT * FROM system.backups FORMAT vertical;
Дополнительные параметры и возможности можно посмотреть в официальной документации - https://clickhouse.com/docs/en/operations/backup.
Примерная структура архива с бэкапом:
Для того, чтобы иметь возможность создавать резервные копии данных (бекап) в RT.WideStore должно быть выполнено следующее:
1. В RT.ClusterManager должен быть развернут кластер RT.WideStore с использованием плагина версии не ниже 1.22.5.
2. Должны быть установлены компоненты ch и zookeeper, выполнена их привязка к хостам провайдера, а выполнена установка программного обеспечения компонент на эти хосты.
Для создания резервной копии данных необходимо выполнить следующие действия:
1. Откройте форму: «Кластеры -> имя_кластера -> ch -> Конфигурация», в правой части формы выберите вкладку «backup» (см. Рис.1).
2. Для параметра «backup_vanilla_dir» введите путь до папки, куда будут сохраняться локальные бэкапы.
3. Для параметра «backup_vanilla_command» введите sql команду для снятия бэкапа (по умолчанию ALL - бэкапятся все объекты кластера\все таблицы).
4. Для параметра «backup_vanilla_host_list» добавьте строку, нажав соответствующую кнопку.
5. Укажите имя хоста, с которого будет сниматься резервная копия.
Параметр «backup_vanilla_host_list» может содержать несколько строк. Если список параметра «backup_vanilla_host_list» пустой, то резервная копия будет сниматься со всех хостов, связанных с компонентом ch.
6. Нажмите кнопку «Сохранить» в нижней части формы.
7. Из меню действий запустите «Run vanilla backup» (см. Рис. 2).
8. Результат выполнения операции по снятию резервной копии данных можно проверить по логам в разделе «События», в конце лога должно появится сообщение «BACKUP_CREATED».
9. На хостах, указанных в списке «backup_vanilla_host_list», в папке, указанной в параметре «backup_vanilla_dir» должен появиться архив с бэкапом и соответствующий лог. файл.
Запустив операцию "Show vanilla backup list", в логах в разделе “События” вы сможете просмотреть список с информацией по всем операциям по формированию резервных копий как успешных, так и завершившихся ошибкой.
Для восстановления данных из резервной копии необходимо выполнить следующие действия:
1. Откройте форму: «Кластеры -> имя_кластера -> ch -> Конфигурация», в правой части формы выберите вкладку «backup» (см. Рис. 1).
2. Для параметра «restore_vanilla_command» введите sql команду для восстановления данных из резервной копии данных.
Например, для восстановления конкретной таблицы можно воспользоваться командой:
RESTORE TABLE table1 FROM Disk('backups', 'all_20240520_165232.zip') SETTINGS allow_non_empty_tables=true;
Где:
table1 - имя таблицы которую будем восстанавливать,
backups – имя каталога с резервными копиями данных,
all_20240520_165232.zip - имя архива с резервной копией данных.
3. Если мы хотим выполнить восстановление данных из резервной копии не на все хосты кластера, а на конкретный (конкретные), то укажите их в параметре «backup_vanilla_host_list» добавив строки с именем хоста.
4. Нажмите кнопку «Сохранить» в нижней части формы.
5. Из меню действий запустите «Run vanilla restore».
6. Результат выполнения операции по восстановлению данных из резервной копии можно проверить по логам в разделе «События», в конце лога должно появится сообщение «RESTORED».