В этом разделе в общих чертах рассматриваются резервное копирование и восстановление в ClickHouse. Более подробное описание каждого способа резервного копирования см. на страницах, посвящённых конкретным способам, на боковой панели.
Введение
MergeTree, содержащие более
50 ГБ данных. Однако эти механизмы защиты не охватывают все возможные случаи, и
проблемы всё равно могут возникнуть.
Чтобы эффективно снизить риск человеческих ошибок, следует заранее тщательно
подготовить стратегию резервного копирования и восстановления данных.
У каждой компании разные ресурсы и бизнес-требования, поэтому
универсального решения для резервного копирования и восстановления ClickHouse,
которое подошло бы для любой ситуации, не существует. То, что работает для одного гигабайта данных,
скорее всего, не подойдёт для десятков PB данных. Существует множество возможных подходов
со своими плюсами и минусами, которые представлены в этом разделе документации.
Лучше использовать несколько подходов, а не ограничиваться одним, чтобы компенсировать
их различные недостатки.
Имейте в виду: если вы создали резервную копию, но ни разу не пытались её восстановить,
велика вероятность, что восстановление не сработает должным образом, когда оно действительно понадобится (или, по
крайней мере, займёт больше времени, чем может позволить себе бизнес). Поэтому какой бы подход к резервному копированию вы ни выбрали, обязательно автоматизируйте и процесс восстановления, а также регулярно
отрабатывайте его на резервном кластере ClickHouse.
Резервные копии могут:
- быть полными или инкрементальными
- быть синхронными или асинхронными
- быть параллельными или последовательными
- быть сжатыми или несжатыми
- использовать именованные коллекции
- быть защищены паролем
- создаваться для системных таблиц, таблиц логов или таблиц управления доступом
Типы резервного копирования
- Полные резервные копии для небольших баз данных или критически важных данных.
- Инкрементные резервные копии для более крупных баз данных или если резервное копирование нужно выполнять часто и с минимальными затратами.
- Оба типа, например еженедельные полные резервные копии и ежедневные инкрементные резервные копии.
Синхронное и асинхронное резервное копирование
BACKUP и RESTORE также можно пометить как ASYNC. В этом случае
команда резервного копирования сразу возвращает управление, а сам процесс выполняется в фоновом режиме.
Если команды не помечены как ASYNC, процесс резервного копирования выполняется синхронно, и
команда не завершится, пока резервное копирование не будет завершено.
Параллельные и последовательные резервные копии
true, поэтому по умолчанию параллельное резервное копирование и восстановление
разрешены. Если в кластере для этих настроек задано значение false, в каждый момент времени в кластере
может выполняться только одно резервное копирование или восстановление.
Сжатые и несжатые резервные копии
compression_method и compression_level.
При создании резервной копии можно указать:
Использование именованных коллекций
- Скрывать учетные данные от пользователей без прав администратора
- Упрощать команды за счет централизованного хранения сложной конфигурации
- Поддерживать согласованность между операциями
- Избегать раскрытия учетных данных в журналах запросов
Резервное копирование системных таблиц, таблиц логов и таблиц управления доступом
_log (например,
query_log, part_log), можно включать в резервные копии и восстанавливать так же, как и любые другие таблицы.
Если ваш сценарий использования предполагает анализ исторических данных — например, использование query_log
для отслеживания производительности запросов или отладки проблем, — эти
таблицы рекомендуется включить в стратегию резервного копирования. Однако, если исторические данные из этих таблиц
не нужны, их можно исключить, чтобы сэкономить место в хранилище резервных копий.
Системные таблицы, связанные с управлением доступом, такие как users, roles, row_policies,
settings_profiles и quotas, особым образом обрабатываются при резервном копировании и восстановлении.
Когда эти таблицы включаются в резервную копию, их содержимое экспортируется в специальный
файл accessXX.txt, который содержит эквивалентные SQL-операторы для создания
и настройки сущностей доступа. При восстановлении процесс восстановления
интерпретирует эти файлы и повторно применяет SQL-команды, чтобы воссоздать пользователей,
роли и другие конфигурации. Эта возможность гарантирует, что конфигурацию
управления доступом кластера ClickHouse можно сохранить в резервной копии и восстановить как часть
общей конфигурации кластера.
Эта функциональность работает только для конфигураций, управляемых с помощью SQL-команд
(обозначаемых как “система управления доступом и учётными записями на основе SQL”).
Конфигурации доступа, определённые в файлах конфигурации сервера ClickHouse (например, users.xml),
не включаются в резервные копии и не могут быть восстановлены этим методом.
Общий синтаксис
Сводка команд
Настройки
Настройки для S3
Настройки для Azure
Администрирование и устранение неполадок
id и status, и этот id можно использовать, чтобы
узнать статус резервной копии. Это особенно полезно для отслеживания хода выполнения длительных
резервных копий ASYNC. В примере ниже показана ошибка, возникшая при попытке
перезаписать существующий файл резервной копии:
system.backups, все операции резервного копирования и восстановления также отслеживаются в системной таблице журнала
system.backup_log: