> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Системная таблица, содержащая записи журнала с информацией об операциях `BACKUP` и `RESTORE`.

# system.backups

<div id="description">
  ## Описание
</div>

Содержит список всех операций `BACKUP` и `RESTORE` с их текущими состояниями и другими свойствами. Обратите внимание, что эта таблица не сохраняется и показывает только операции, выполненные после последнего перезапуска сервера.

<div id="columns">
  ## Столбцы
</div>

* `id` ([String](/docs/ru/reference/data-types/string)) — Идентификатор операции: может быть передан через SETTINGS id=... или случайно сгенерирован в виде UUID.
* `name` ([String](/docs/ru/reference/data-types/string)) — Имя операции — строка вида `Disk('backups', 'my_backup')`
* `base_backup_name` ([String](/docs/ru/reference/data-types/string)) — Имя операции создания базовой резервной копии — строка вида `Disk('backups', 'my_base_backup')`
* `query_id` ([String](/docs/ru/reference/data-types/string)) — Query id запроса, запустившего создание резервной копии.
* `status` ([Enum8('CREATING\_BACKUP' = 0, 'BACKUP\_CREATED' = 1, 'BACKUP\_FAILED' = 2, 'RESTORING' = 3, 'RESTORED' = 4, 'RESTORE\_FAILED' = 5, 'BACKUP\_CANCELLED' = 6, 'RESTORE\_CANCELLED' = 7)](/docs/ru/reference/data-types/enum)) — Статус операции резервного копирования или восстановления.
* `error` ([String](/docs/ru/reference/data-types/string)) — Сообщение об ошибке, если она возникла.
* `start_time` ([DateTime64(6)](/docs/ru/reference/data-types/datetime64)) — Время начала операции.
* `end_time` ([DateTime64(6)](/docs/ru/reference/data-types/datetime64)) — Время завершения операции.
* `num_files` ([UInt64](/docs/ru/reference/data-types/int-uint)) — Количество файлов, сохранённых в резервной копии.
* `total_size` ([UInt64](/docs/ru/reference/data-types/int-uint)) — Общий размер файлов, сохранённых в резервной копии.
* `num_entries` ([UInt64](/docs/ru/reference/data-types/int-uint)) — Количество записей в резервной копии, то есть количество файлов в папке, если резервная копия хранится в виде папки.
* `uncompressed_size` ([UInt64](/docs/ru/reference/data-types/int-uint)) — Размер резервной копии без сжатия.
* `compressed_size` ([UInt64](/docs/ru/reference/data-types/int-uint)) — Размер резервной копии в сжатом виде.
* `files_read` ([UInt64](/docs/ru/reference/data-types/int-uint)) — Возвращает количество файлов, прочитанных из этой резервной копии во время RESTORE.
* `bytes_read` ([UInt64](/docs/ru/reference/data-types/int-uint)) — Возвращает общий размер файлов, прочитанных из этой резервной копии во время RESTORE.
* `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/docs/ru/reference/data-types/map)) — Все события профиля, зарегистрированные во время этой операции.
* `settings` ([Map(LowCardinality(String), String)](/docs/ru/reference/data-types/map)) — Настройки резервного копирования и восстановления, фактически использованные для этой операции (из предложения `SETTINGS`, включая значения по умолчанию). Конфиденциальные настройки не отображаются.
* `engine_settings` ([Map(LowCardinality(String), String)](/docs/ru/reference/data-types/map)) — Настройки, фактически используемые модулем чтения/записи движка резервного копирования (например, S3 `allow_native_copy`). Значение пустое, если в операции задействовано несколько движков, которые невозможно представить в виде плоской карты: инкрементное резервное копирование и восстановление, восстановление легковесных снимков и невнутренние операции `ON CLUSTER`.

<div id="restore-atomicity">
  ## Атомарность восстановления
</div>

`RESTORE` не является транзакционной операцией и при сбое не выполняет откат. Для каждой таблицы все выбранные части копируются до того, как будет подключена хотя бы одна из них, но сам этап подключения не является транзакционным — части становятся видимыми по одной. Таблицы обрабатываются независимо.

**Таблицы независимы.** Таблица, восстановление которой завершилось, остается доступной, даже если другая таблица в той же команде позже завершится с ошибкой:

```sql theme={null}
RESTORE TABLE db.t0, TABLE db.t1
FROM S3('<endpoint>', '<access_key>', '<secret_key>')
SETTINGS
    allow_non_empty_tables = true;
```

Если эта команда завершится ошибкой после того, как `db.t0` будет полностью восстановлена, но до завершения восстановления `db.t1`, `db.t0` останется восстановленной.

**Предложение `PARTITIONS` не является границей коммита.** Она лишь определяет, какие части таблицы будут восстановлены:

```sql theme={null}
RESTORE TABLE db.t0 PARTITIONS '2026-06-01', '2026-06-02', '2026-06-03'
FROM S3('<endpoint>', '<access_key>', '<secret_key>')
SETTINGS
    allow_non_empty_tables = true;
```

Сначала копируются все выбранные части таблицы, и только после того, как готовы все до одной, они подключаются. Поэтому, если эта команда завершится ошибкой на этапе копирования — например, после того как партиция `2026-06-01` уже полностью скопирована, а `2026-06-02` и `2026-06-03` ещё не завершены, — то `2026-06-01` **не** будет закоммичена, и в таблице не останется никаких данных, восстановленных этой командой. После завершения этапа копирования начинается этап подключения, и на нём части коммитятся по одной, поэтому сбой во время подключения может оставить таблицу частично восстановленной, без rollback.

Чтобы коммитить партиции независимо (так, чтобы успешно завершённая партиция сохранилась при последующем сбое и её можно было повторить отдельно), запускайте отдельный `RESTORE` для каждой партиции, используя `SETTINGS allow_non_empty_tables = true` после первой.
