Резервное копирование и восстановление на локальный диск
Синтаксис
Дополнительные сведения о каждой команде см. в разделе "краткий обзор команд".
Настройка путей назначения резервного копирования для диска
Настройка пути назначения резервного копирования для локального диска
В приведённых ниже примерах вы увидите, что путь назначения резервного копирования указан как Disk('backups', '1.zip').
Чтобы использовать движок резервного копирования Disk, необходимо сначала создать файл, задающий путь назначения резервного копирования, по следующему пути:
Например, в приведённой ниже конфигурации определяется диск с именем backups, после чего этот диск добавляется в список allowed_disk политики backups:
Настройка назначения резервного копирования для диска S3
Также можно выполнять операции BACKUP/RESTORE в S3, настроив диск S3
в настройках хранилища ClickHouse. Настройте диск следующим образом, добавив файл в
/etc/clickhouse-server/config.d, как это было сделано выше для локального диска.
Операции BACKUP/RESTORE для диска S3 выполняются так же, как и для локального диска:
- Этот диск не должен использоваться для самого
MergeTree, только дляBACKUP/RESTORE. - Если ваши таблицы используют хранилище S3 и типы дисков различаются,
для копирования частей в целевой бакет не используются вызовы
CopyObject: вместо этого данные сначала скачиваются, а затем загружаются, что крайне неэффективно. В таком случае рекомендуется использовать синтаксисBACKUP ... TO S3(<endpoint>)для этого сценария.
Примеры использования операций резервного копирования и восстановления на локальный диск
Резервное копирование и восстановление таблицы
Запустите следующие команды, чтобы создать тестовую базу данных и таблицу, для которых в этом примере мы будем создавать резервную копию и выполнять восстановление:
Команды для настройки
Создайте базу данных и таблицу:
Сгенерируйте одну тысячу строк случайных данных:
Далее вам нужно создать файл, указывающий место назначения резервной копии по следующему пути:
Если clickhouse-server запущен, вам нужно будет перезапустить его, чтобы изменения вступили в силу.
Чтобы создать резервную копию таблицы, выполните:
Таблицу можно восстановить из резервной копии с помощью следующей команды, если таблица пустая:
Выполнение приведённой выше команды RESTORE завершится ошибкой, если таблица test.table уже содержит данные.
Настройка allow_non_empty_tables=true позволяет команде RESTORE TABLE вставлять данные
в непустые таблицы. В этом случае прежние данные в таблице будут смешаны с данными, извлечёнными из резервной копии.
Поэтому эта настройка может привести к дублированию данных в таблице и должна использоваться с осторожностью.
Чтобы восстановить таблицу, уже содержащую данные, выполните:
Таблицы можно восстанавливать или создавать их резервные копии под новыми именами:
Архив этой резервной копии имеет следующую структуру:
Могут использоваться и другие форматы, помимо zip. См. раздел "Резервные копии в виде tar-архивов" ниже для получения дополнительной информации.
Инкрементные резервные копии на диск
Базовая резервная копия в ClickHouse — это начальная полная резервная копия, на основе которой
создаются последующие инкрементные резервные копии. Инкрементные резервные копии содержат только изменения,
сделанные с момента создания базовой резервной копии, поэтому базовую резервную копию необходимо хранить в доступном виде,
чтобы иметь возможность выполнить восстановление из любой инкрементной резервной копии. Место назначения базовой резервной копии можно задать настройкой
base_backup.
Инкрементные резервные копии зависят от базовой резервной копии. Базовую резервную копию необходимо хранить в доступном виде, чтобы иметь возможность выполнить восстановление из инкрементной резервной копии.
Чтобы создать инкрементную резервную копию таблицы, сначала создайте базовую резервную копию:
Все данные из инкрементной и базовой резервных копий могут быть восстановлены в
новую таблицу test_db.test_table2 с помощью следующей команды:
Защита резервной копии
К файлам резервных копий, записанным на диск, можно применить пароль.
Пароль можно указать с помощью настройки password:
Для восстановления резервной копии, защищённой паролем, следует повторно
указать пароль в настройке password:
Резервные копии в виде tar-архивов
Резервные копии могут храниться не только в виде zip-архивов, но и в виде tar-архивов. Функциональность аналогична zip, за исключением того, что защита паролем не поддерживается для tar-архивов. Кроме того, tar-архивы поддерживают различные методы сжатия.
Чтобы создать резервную копию таблицы в формате tar:
для восстановления из tar-архива:
Чтобы изменить метод сжатия, к имени резервной копии необходимо добавить нужное расширение файла. Например, чтобы сжать tar‑архив с помощью gzip, выполните:
Поддерживаемые суффиксы файлов сжатых архивов:
tar.gz.tgztar.bz2tar.lzma.tar.zst.tzst.tar.xz
Настройки сжатия
Метод сжатия и степень сжатия можно задать с помощью параметров compression_method и compression_level соответственно.
Восстановление отдельных партиций
Если необходимо восстановить только определённые партиции, связанные с таблицей, их можно явно указать.
Создадим простую партиционированную таблицу на четыре партиции, вставим в неё данные, а затем сделаем резервную копию только первой и четвёртой партиций:
Setup
Выполните следующую команду, чтобы создать резервную копию партиций 1 и 4:
Выполните следующую команду, чтобы восстановить партиции 1 и 4: