Перейти к основному содержанию

Синтаксис

См. “сводку команд”, где приведены более подробные сведения о каждой команде.

Настройка пунктов назначения резервных копий на диске

Настройка пункта назначения резервной копии для локального диска

В примерах ниже пункт назначения резервной копии задается как 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 запущен, его нужно перезапустить, чтобы изменения вступили в силу.
Чтобы создать резервную копию таблицы, выполните:
Query
Response
Если таблица пуста, её можно восстановить из резервной копии с помощью следующей команды:
Query
Response
Указанная выше команда RESTORE завершится ошибкой, если таблица test.table содержит данные. Параметр allow_non_empty_tables=true позволяет RESTORE TABLE выполнять вставку данных в непустые таблицы. Это приведет к смешиванию уже имеющихся в таблице данных с данными, извлеченными из резервной копии. Поэтому этот параметр может вызвать дублирование данных в таблице и должен использоваться с осторожностью.
Чтобы восстановить таблицу, в которой уже есть данные, выполните:
Таблицы можно восстановить или сохранить в резервную копию под новыми именами:
Архив этой резервной копии имеет следующую структуру:
Можно использовать и другие форматы, помимо zip. Подробности см. ниже в разделе “Резервные копии в tar-архивах”.

Инкрементные резервные копии на диск

Базовая резервная копия в ClickHouse — это исходная полная резервная копия, на основе которой создаются последующие инкрементные резервные копии. Инкрементные резервные копии хранят только изменения, внесённые после создания базовой резервной копии, поэтому базовая резервная копия должна оставаться доступной, чтобы можно было восстановиться из любой инкрементной резервной копии. Пункт назначения базовой резервной копии можно задать с помощью параметра base_backup.
Инкрементные резервные копии зависят от базовой резервной копии. Базовая резервная копия должна оставаться доступной, чтобы можно было восстановиться из инкрементной резервной копии.
Чтобы создать инкрементную резервную копию таблицы, сначала создайте базовую резервную копию:
Все данные из инкрементной и базовой резервных копий можно восстановить в новую таблицу test_db.test_table2 командой:

Защита резервной копии

Для резервной копии, записанной на диск, можно задать пароль. Пароль можно указать с помощью настройки password.
Защита паролем поддерживается только для ZIP-архивов (.zip, .zipx). Чтобы пароль был принят, путь к резервной копии должен оканчиваться на .zip или .zipx. Использование пароля с любым другим форматом — включая tar-архивы и пути, не указывающие на архив, — приведет к ошибке BAD_ARGUMENTS: Password is not applicable, backup cannot be encrypted.
Чтобы восстановить резервную копию, защищённую паролем, нужно снова указать пароль с помощью настройки password:

Резервные копии в виде tar-архивов

Резервные копии можно хранить не только в zip-архивах, но и в tar-архивах. Функциональность такая же, как у zip, за исключением того, что защита паролем для tar-архивов не поддерживается. Кроме того, tar-архивы поддерживают различные методы сжатия. Чтобы создать резервную копию таблицы в виде tar:
для восстановления из tar-архива:
Чтобы изменить метод сжатия, к имени резервной копии следует добавить соответствующий суффикс файла. Например, чтобы сжать tar-архив с помощью gzip, выполните:
Поддерживаются следующие суффиксы сжатых файлов:
  • tar.gz
  • .tgz
  • tar.bz2
  • tar.lzma
  • .tar.zst
  • .tzst
  • .tar.xz

Настройки сжатия

Метод и уровень сжатия можно указать с помощью настроек compression_method и compression_level соответственно.

Восстановление определённых партиций

Если нужно восстановить определённые партиции таблицы, их можно явно указать. Давайте создадим простую таблицу, разбитую на четыре партиции, вставим в неё данные, а затем создадим резервную копию только первой и четвёртой партиций:
Выполните следующую команду, чтобы создать резервную копию партиций 1 и 4:
Выполните следующую команду, чтобы восстановить партиции 1 и 4:
Последнее изменение 1 июля 2026 г.