> ## 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/ru/concepts/features/backup-restore/overview#syntax) поддерживает
настройки в предложении `SETTINGS`, которые определяют, какие категории объектов считываются
из резервной копии. На этой странице описаны настройки, позволяющие выбрать восстанавливаемые данные таблиц,
объекты управления доступом и пользовательские функции.

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

Тип: `Bool`. Значение по умолчанию: `false`.

Если задано значение `true`, из резервной копии считываются только запросы `CREATE`, без
содержимого восстанавливаемых объектов. Это удобное сокращение, задающее
фактические значения по умолчанию `false` для всех трёх настроек категорий ниже:

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

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

Тип: `Bool`. Необязательный; если не задан, по умолчанию равен `!structure_only` (то есть `true`,
если `structure_only` не задан).

Определяет, следует ли восстанавливать данные таблиц. При явном задании переопределяет
`structure_only`: установите `true`, чтобы восстановить данные таблиц даже при
`structure_only=true`, или `false`, чтобы пропустить данные таблиц, даже если `structure_only`
не задан.

<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`: по умолчанию все три настройки имеют значение
`true`, а при `structure_only=true` — `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
```
