Резервное копирование и восстановление на локальный диск
Синтаксис
Дополнительные сведения о каждой команде см. в разделе "краткий обзор команд".
Настройка путей назначения резервного копирования для диска
Настройка пути назначения резервного копирования для локального диска
В приведённых ниже примерах вы увидите, что путь назначения резервного копирования указан как 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: