> ## 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/index)) — ID операции; может быть либо передан через SETTINGS id=..., либо случайным образом сгенерирован как UUID.
* `name` ([String](/docs/ru/reference/data-types/index)) — Имя операции, строка вида `Disk('backups', 'my_backup')`
* `base_backup_name` ([String](/docs/ru/reference/data-types/index)) — Имя операции базовой резервной копии, строка вида `Disk('backups', 'my_base_backup')`
* `query_id` ([String](/docs/ru/reference/data-types/index)) — 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/index)) — Статус операции резервного копирования или восстановления.
* `error` ([String](/docs/ru/reference/data-types/index)) — Сообщение об ошибке, если она есть.
* `start_time` ([DateTime64(6)](/docs/ru/reference/data-types/index)) — Время начала операции.
* `end_time` ([DateTime64(6)](/docs/ru/reference/data-types/index)) — Время завершения операции.
* `num_files` ([UInt64](/docs/ru/reference/data-types/index)) — Количество файлов, сохранённых в резервной копии.
* `total_size` ([UInt64](/docs/ru/reference/data-types/index)) — Общий размер файлов, сохранённых в резервной копии.
* `num_entries` ([UInt64](/docs/ru/reference/data-types/index)) — Количество записей в резервной копии, то есть количество файлов в папке, если резервная копия хранится в виде папки.
* `uncompressed_size` ([UInt64](/docs/ru/reference/data-types/index)) — Размер резервной копии в несжатом виде.
* `compressed_size` ([UInt64](/docs/ru/reference/data-types/index)) — Размер резервной копии в сжатом виде.
* `files_read` ([UInt64](/docs/ru/reference/data-types/index)) — Количество файлов, прочитанных во время RESTORE из этой резервной копии.
* `bytes_read` ([UInt64](/docs/ru/reference/data-types/index)) — Общий размер файлов, прочитанных во время RESTORE из этой резервной копии.
* `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/docs/ru/reference/data-types/index)) — Все события профиля, собранные во время этой операции.
* `settings` ([Map(LowCardinality(String), String)](/docs/ru/reference/data-types/index)) — Специфичные для резервного копирования/восстановления настройки, фактически использованные для этой операции (из предложения `SETTINGS`, включая значения по умолчанию). Конфиденциальные настройки не раскрываются.
* `engine_settings` ([Map(LowCardinality(String), String)](/docs/ru/reference/data-types/index)) — Настройки, фактически используемые модулем чтения/записи движка резервного копирования (например, S3 `allow_native_copy`). Пусто, если операция задействует более одного движка, что нельзя представить в виде плоской Map: инкрементные резервные копии и восстановления, восстановления легковесных снимков и невнутренние операции с предложением `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` после первой.
