> ## 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/ja/reference/data-types/index)) — 操作 ID。`SETTINGS id=...` で指定することも、ランダムに生成された UUID にすることもできます。
* `name` ([String](/docs/ja/reference/data-types/index)) — 操作名。`Disk('backups', 'my_backup')` のような文字列です。
* `base_backup_name` ([String](/docs/ja/reference/data-types/index)) — ベースバックアップの操作名。`Disk('backups', 'my_base_backup')` のような文字列です。
* `query_id` ([String](/docs/ja/reference/data-types/index)) — バックアップを開始したクエリの 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/ja/reference/data-types/index)) — バックアップまたは復元操作のステータス。
* `error` ([String](/docs/ja/reference/data-types/index)) — エラーが発生した場合のエラーメッセージ。
* `start_time` ([DateTime64(6)](/docs/ja/reference/data-types/index)) — 操作が開始された時刻。
* `end_time` ([DateTime64(6)](/docs/ja/reference/data-types/index)) — 操作が完了した時刻。
* `num_files` ([UInt64](/docs/ja/reference/data-types/index)) — バックアップに保存されているファイル数。
* `total_size` ([UInt64](/docs/ja/reference/data-types/index)) — バックアップに保存されているファイルの合計サイズ。
* `num_entries` ([UInt64](/docs/ja/reference/data-types/index)) — バックアップ内のエントリ数。つまり、バックアップがフォルダとして保存されている場合は、そのフォルダ内のファイル数です。
* `uncompressed_size` ([UInt64](/docs/ja/reference/data-types/index)) — バックアップの非圧縮サイズ。
* `compressed_size` ([UInt64](/docs/ja/reference/data-types/index)) — バックアップの圧縮サイズ。
* `files_read` ([UInt64](/docs/ja/reference/data-types/index)) — このバックアップから RESTORE 中に読み取られたファイル数を返します。
* `bytes_read` ([UInt64](/docs/ja/reference/data-types/index)) — このバックアップから RESTORE 中に読み取られたファイルの合計サイズを返します。
* `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/docs/ja/reference/data-types/index)) — この操作中に収集されたすべての profile events。
* `settings` ([Map(LowCardinality(String), String)](/docs/ja/reference/data-types/index)) — この操作で実際に使用されたバックアップ/復元固有の設定です (`SETTINGS` 句の設定で、デフォルトを含む) 。機密性の高い設定は公開されません。
* `engine_settings` ([Map(LowCardinality(String), String)](/docs/ja/reference/data-types/index)) — バックアップ engine の reader/writer が実際に使用した設定です (例: S3 `allow_native_copy`) 。フラットな map では表現できない複数の engine が関与する場合、この値は空になります。これには、incremental backups と restores、lightweight snapshot restores、非 internal の `ON CLUSTER` 操作が含まれます。

<div id="restore-atomicity">
  ## 復元のアトミック性
</div>

`RESTORE` はトランザクション処理ではないため、失敗してもロールバックされません。各テーブルでは、選択したすべてのパーツが、どのパーツもアタッチされる前にコピーされますが、アタッチのフェーズ自体にはトランザクション性がありません。つまり、パーツは 1 つずつ順に可視状態になります。テーブルはそれぞれ独立して処理されます。

**テーブルは独立しています。** あるテーブルの復元が完了した場合、同じコマンド内の別のテーブルがその後失敗しても、そのテーブルはそのまま残ります。

```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` は**コミットされず**、このコマンドで復元されたデータはテーブルに一切反映されません。コピーのフェーズが完了してアタッチの手順が始まると、パーツは 1 つずつコミットされるため、アタッチ中に失敗すると、ロールバックされないままテーブルが部分的に復元された状態になる可能性があります。

パーティションごとに独立してコミットしたい場合 (つまり、完了したパーティションが後続の失敗後も保持され、個別に再試行できるようにしたい場合) は、パーティションごとに `RESTORE` を個別に実行し、最初の実行以降は `SETTINGS allow_non_empty_tables = true` を使用してください。
