Skip to main content

Description

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.

Colonnes

  • id (String) — ID de l’opération, qui peut être soit fourni via SETTINGS id=…, soit un UUID généré aléatoirement.
  • name (String) — Nom de l’opération, une chaîne comme Disk('backups', 'my_backup')
  • base_backup_name (String) — Nom de l’opération de sauvegarde de base, une chaîne comme Disk('backups', 'my_base_backup')
  • query_id (String) — 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)) — Statut de l’opération de sauvegarde ou de restauration.
  • error (String) — Le message d’erreur, le cas échéant.
  • start_time (DateTime64(6)) — Heure de début de l’opération.
  • end_time (DateTime64(6)) — Heure de fin de l’opération.
  • num_files (UInt64) — Nombre de fichiers stockés dans la sauvegarde.
  • total_size (UInt64) — Taille totale des fichiers stockés dans la sauvegarde.
  • num_entries (UInt64) — 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) — Taille non compressée de la sauvegarde.
  • compressed_size (UInt64) — Taille compressée de la sauvegarde.
  • files_read (UInt64) — Renvoie le nombre de fichiers lus pendant RESTORE depuis cette sauvegarde.
  • bytes_read (UInt64) — Renvoie la taille totale des fichiers lus pendant RESTORE depuis cette sauvegarde.
  • ProfileEvents (Map(LowCardinality(String), UInt64)) — Tous les événements de profil capturés pendant cette opération.
  • settings (Map(LowCardinality(String), String)) — 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)) — 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.

Atomicité de la restauration

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 :
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 :
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.
Dernière modification le 23 juillet 2026