> ## 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.

> バックアップから復元するオブジェクトのカテゴリを制御するRESTOREクエリの設定。

# 復元設定

[`RESTORE`](/docs/ja/concepts/features/backup-restore/overview#syntax)クエリは、`SETTINGS`句で、バックアップから読み取るオブジェクトのカテゴリを制御する設定を受け取ります。
このページでは、復元する対象 (テーブルデータ、アクセスエンティティ、ユーザー定義関数) を選択する設定について説明します。

<div id="structure-only">
  ## `structure_only`
</div>

型: `Bool`。デフォルト: `false`。

`true` に設定すると、復元するオブジェクトの内容を除き、バックアップからは `CREATE` クエリのみが読み取られます。これは、以下の 3 つのカテゴリ設定の実効デフォルトをすべて `false` にするための便利なショートカットです。

* `restore_table_data`
* `restore_access_entities`
* `restore_functions`

<div id="restore-table-data">
  ## `restore_table_data`
</div>

型: `Bool`。任意。未設定の場合、デフォルトは `!structure_only` (つまり、`structure_only`
が設定されていない限り `true`) です。

テーブルデータを復元するかどうかを指定します。明示的に設定した場合は
`structure_only` をオーバーライドします。`structure_only=true` の場合でもテーブルデータを復元するには
`true` に設定し、`structure_only`
が未設定の場合でもテーブルデータをスキップするには `false` に設定します。

<div id="restore-access-entities">
  ## `restore_access_entities`
</div>

型: `Bool`。任意。設定しない場合、デフォルトは `!structure_only` です。

ユーザー、ロール、設定プロファイル、行ポリシー、クォータなどのアクセスエンティティを復元するかどうか。明示的に設定した場合は、`structure_only` をオーバーライドします。

<div id="restore-functions">
  ## `restore_functions`
</div>

型: `Bool`。任意。未設定の場合、デフォルトで `!structure_only` になります。

ユーザー定義関数を復元するかどうかを指定します。明示的に設定すると、
`structure_only` をオーバーライドします。

<div id="effective-behavior">
  ## 実効動作
</div>

各カテゴリは、対応する設定が `true` の場合に復元されます。カテゴリの
設定が指定されていない場合、その値は `structure_only` から決定されます。デフォルトでは3つすべてが
`true` であり、`structure_only=true` の場合は3つすべてが `false` になります。

| `structure_only` | `restore_*` 未設定 | `restore_* = true` | `restore_* = false` |
| :--------------: | :-------------: | :----------------: | :-----------------: |
|      `false`     |      復元される      |        復元される       |       スキップされる       |
|      `true`      |     スキップされる     |        復元される       |       スキップされる       |

これは完全に後方互換です。新しい設定をいずれも指定しない `RESTORE` クエリは、
従来とまったく同じように動作します。

<div id="examples">
  ## 例
</div>

テーブル定義とアクセスエンティティを復元し、テーブルデータは復元しません。たとえば、データをコピーせずにクエリのテストや再実行を行う環境をセットアップできます。

```sql theme={null}
RESTORE ALL FROM backup_name
SETTINGS structure_only = true, restore_access_entities = true
```

アクセスエンティティやユーザー定義関数を再作成せず、テーブルデータのみを復元します：

```sql theme={null}
RESTORE ALL FROM backup_name
SETTINGS structure_only = true, restore_table_data = true
```

ユーザー定義関数以外のすべてを復元します。

```sql theme={null}
RESTORE ALL FROM backup_name
SETTINGS restore_functions = false
```
