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

> Table système contenant des entrées de journalisation sur les opérations `BACKUP` et `RESTORE`.

# system.backups

<div id="description">
  ## Description
</div>

Contient la liste de toutes les opérations `BACKUP` ou `RESTORE`, avec leur état actuel et d'autres propriétés. Notez que cette table n'est pas persistante et qu'elle n'affiche que les opérations exécutées depuis le dernier redémarrage du serveur.

<div id="columns">
  ## Colonnes
</div>

* `id` ([String](/docs/fr/reference/data-types/index)) — ID de l’opération, qui peut être soit fourni via SETTINGS id=..., soit un UUID généré aléatoirement.
* `name` ([String](/docs/fr/reference/data-types/index)) — Nom de l’opération, une chaîne comme `Disk('backups', 'my_backup')`
* `base_backup_name` ([String](/docs/fr/reference/data-types/index)) — Nom de l’opération de sauvegarde de base, une chaîne comme `Disk('backups', 'my_base_backup')`
* `query_id` ([String](/docs/fr/reference/data-types/index)) — ID de la requête qui a démarré la sauvegarde.
* `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/fr/reference/data-types/index)) — Statut de l’opération de sauvegarde ou de restauration.
* `error` ([String](/docs/fr/reference/data-types/index)) — Le message d’erreur, le cas échéant.
* `start_time` ([DateTime64(6)](/docs/fr/reference/data-types/index)) — Heure de début de l’opération.
* `end_time` ([DateTime64(6)](/docs/fr/reference/data-types/index)) — Heure de fin de l’opération.
* `num_files` ([UInt64](/docs/fr/reference/data-types/index)) — Nombre de fichiers stockés dans la sauvegarde.
* `total_size` ([UInt64](/docs/fr/reference/data-types/index)) — Taille totale des fichiers stockés dans la sauvegarde.
* `num_entries` ([UInt64](/docs/fr/reference/data-types/index)) — Nombre d’entrées dans la sauvegarde, c’est-à-dire le nombre de fichiers dans le dossier si la sauvegarde est stockée sous forme de dossier.
* `uncompressed_size` ([UInt64](/docs/fr/reference/data-types/index)) — Taille non compressée de la sauvegarde.
* `compressed_size` ([UInt64](/docs/fr/reference/data-types/index)) — Taille compressée de la sauvegarde.
* `files_read` ([UInt64](/docs/fr/reference/data-types/index)) — Renvoie le nombre de fichiers lus pendant RESTORE depuis cette sauvegarde.
* `bytes_read` ([UInt64](/docs/fr/reference/data-types/index)) — Renvoie la taille totale des fichiers lus pendant RESTORE depuis cette sauvegarde.
* `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/docs/fr/reference/data-types/index)) — Tous les événements de profil capturés pendant cette opération.
* `settings` ([Map(LowCardinality(String), String)](/docs/fr/reference/data-types/index)) — Paramètres spécifiques à la sauvegarde/restauration effectivement utilisés pour cette opération (issus de la clause `SETTINGS`, y compris les valeurs par défaut). Les paramètres sensibles ne sont pas exposés.
* `engine_settings` ([Map(LowCardinality(String), String)](/docs/fr/reference/data-types/index)) — Paramètres effectivement utilisés par le lecteur/rédacteur du moteur de sauvegarde (par ex. S3 `allow_native_copy`). Vide lorsque l’opération implique plus d’un moteur, ce qu’une map à plat ne peut pas représenter : sauvegardes incrémentielles et restaurations, restaurations légères d’instantanés, et opérations `ON CLUSTER` non internes.

<div id="restore-atomicity">
  ## Atomicité de la restauration
</div>

`RESTORE` n'est pas transactionnel et n'effectue pas d'annulation en cas d'échec. Pour chaque table, toutes les parts sélectionnées sont copiées avant que la moindre ne soit attachée, mais la phase d'attachement elle-même n'est pas transactionnelle — les parts deviennent visibles une par une. Les tables sont traitées indépendamment.

**Les tables sont indépendantes.** Une table dont la restauration aboutit reste en place même si une autre table de la même commande échoue ensuite :

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

Si cette commande échoue après la restauration complète de `db.t0`, mais avant la fin de celle de `db.t1`, `db.t0` reste restaurée.

**La clause `PARTITIONS` n'est pas une frontière de commit.** Elle sert uniquement à sélectionner les parts d'une table à restaurer :

```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;
```

Toutes les parts sélectionnées de la table sont d’abord copiées, puis attachées uniquement une fois qu’elles sont toutes prêtes. Ainsi, si cette commande échoue pendant la phase de copie — par exemple après que la partition `2026-06-01` a été entièrement copiée, mais avant que `2026-06-02` et `2026-06-03` ne soient terminées — alors `2026-06-01` n’est **pas** validée et la table ne contient aucune donnée restaurée par cette commande. Une fois la phase de copie terminée et l’étape d’attachement commencée, les parts sont validées une par une ; un échec pendant l’attachement peut donc laisser la table partiellement restaurée, sans possibilité d’annulation.

Pour valider les partitions indépendamment (afin qu’une partition terminée survive à un échec ultérieur et puisse être retentée isolément), exécutez un `RESTORE` distinct pour chaque partition, en utilisant `SETTINGS allow_non_empty_tables = true` après la première.
