Passer au contenu principal

Syntaxe

Consultez “résumé des commandes” pour obtenir plus de détails sur chaque commande.

Configurer les destinations de sauvegarde sur disque

Configurer une destination de sauvegarde sur un disque local

Dans les exemples ci-dessous, la destination de sauvegarde est indiquée sous la forme Disk('backups', '1.zip'). Pour utiliser le moteur de sauvegarde Disk, vous devez d’abord ajouter un fichier spécifiant la destination de sauvegarde au chemin ci-dessous :
Par exemple, la configuration ci-dessous définit un disque nommé backups, puis ajoute ce disque à la liste allowed_disk de backups :

Configurer une destination de sauvegarde pour un disque S3

Il est également possible d’effectuer BACKUP/RESTORE vers S3 en configurant un disque S3 dans la configuration de stockage de ClickHouse. Configurez le disque comme suit en ajoutant un fichier dans /etc/clickhouse-server/config.d, comme cela a été fait ci-dessus pour le disque local.
BACKUP/RESTORE pour un disque S3 s’effectue de la même manière que pour un disque local :
  • Ce disque ne doit pas être utilisé pour MergeTree lui-même, uniquement pour BACKUP/RESTORE.
  • Si vos tables reposent sur un stockage S3 et que les types de disques sont différents, les appels CopyObject ne sont pas utilisés pour copier les parts vers le bucket de destination ; à la place, elles sont téléchargées puis téléversées, ce qui est très inefficace. Dans ce cas, il est préférable d’utiliser la syntaxe BACKUP ... TO S3(<endpoint>) pour ce cas d’usage.

Exemples d’utilisation de la sauvegarde/restauration sur disque local

Sauvegarder et restaurer une table

Exécutez les commandes suivantes pour créer la base de données et la table de test dont nous allons effectuer la sauvegarde et la restauration dans cet exemple :
Créez la base de données et la table :
Prétraitez, puis insérez mille lignes de données aléatoires :
Ensuite, vous devrez créer un fichier indiquant la destination de sauvegarde à l’emplacement ci-dessous :
Si clickhouse-server est en cours d’exécution, vous devrez le redémarrer pour que les modifications prennent effet.
Pour sauvegarder la table, vous pouvez exécuter :
Query
Response
La table peut être restaurée depuis la sauvegarde à l’aide de la commande suivante si elle est vide :
Query
Response
Le RESTORE ci-dessus échouera si la table test.table contient des données. Le paramètre allow_non_empty_tables=true permet à RESTORE TABLE d’insérer des données dans des tables non vides. Cela mélangera les données déjà présentes dans la table avec celles extraites de la sauvegarde. Ce paramètre peut donc entraîner une duplication des données dans la table et doit être utilisé avec prudence.
Pour restaurer la table alors qu’elle contient déjà des données, exécutez :
Les tables peuvent être restaurées ou sauvegardées en leur donnant de nouveaux noms :
L’archive de cette sauvegarde a la structure suivante :
D’autres formats que zip peuvent également être utilisés. Voir “Sauvegardes sous forme d’archives tar” ci-dessous pour plus d’informations.

Sauvegardes incrémentielles sur disque

Dans ClickHouse, une sauvegarde de base est la sauvegarde complète initiale à partir de laquelle sont créées les sauvegardes incrémentielles suivantes. Les sauvegardes incrémentielles ne stockent que les modifications effectuées depuis la sauvegarde de base. Cette dernière doit donc rester disponible pour pouvoir restaurer depuis n’importe quelle sauvegarde incrémentielle. La destination de la sauvegarde de base peut être définie avec le paramètre base_backup.
Les sauvegardes incrémentielles dépendent de la sauvegarde de base. La sauvegarde de base doit rester disponible pour pouvoir restaurer depuis une sauvegarde incrémentielle.
Pour effectuer une sauvegarde incrémentielle d’une table, commencez par créer une sauvegarde de base :
Toutes les données de la sauvegarde incrémentielle et de la sauvegarde de base peuvent être restaurées dans une nouvelle table test_db.test_table2 à l’aide de la commande :

Sécuriser une sauvegarde

Les sauvegardes écrites sur disque peuvent être protégées par un mot de passe appliqué au fichier. Le mot de passe peut être défini à l’aide du paramètre password.
La protection par mot de passe n’est prise en charge que pour les archives ZIP (.zip, .zipx). Le chemin de la sauvegarde doit se terminer par .zip ou .zipx pour que le mot de passe soit accepté. L’utilisation d’un mot de passe avec tout autre format, y compris les archives tar et les chemins qui ne sont pas des archives, entraînera une erreur BAD_ARGUMENTS : Password is not applicable, backup cannot be encrypted.
Pour restaurer une sauvegarde protégée par un mot de passe, il faut à nouveau indiquer le paramètre password :

Sauvegardes sous forme d’archives tar

Les sauvegardes peuvent être stockées non seulement sous forme d’archives zip, mais aussi d’archives tar. Le fonctionnement est identique à celui des archives zip, à ceci près que la protection par mot de passe n’est pas prise en charge pour les archives tar. En outre, les archives tar prennent en charge différentes méthodes de compression. Pour sauvegarder une table au format tar :
pour restaurer depuis une archive tar :
Pour modifier la méthode de compression, le suffixe de fichier approprié doit être ajouté au nom de la sauvegarde. Par exemple, pour compresser l’archive tar avec gzip, exécutez :
Les suffixes de fichiers de compression pris en charge sont :
  • tar.gz
  • .tgz
  • tar.bz2
  • tar.lzma
  • .tar.zst
  • .tzst
  • .tar.xz

Paramètres de compression

La méthode et le niveau de compression peuvent être spécifiés à l’aide des paramètres compression_method et compression_level, respectivement.

Restaurer des partitions spécifiques

S’il faut restaurer des partitions spécifiques associées à une table, il est possible de les préciser. Créons une table partitionnée simple en quatre partitions, insérons-y des données, puis effectuons une sauvegarde des première et quatrième partitions uniquement :
Exécutez la commande suivante pour sauvegarder les partitions 1 et 4 :
Exécutez la commande suivante pour restaurer les partitions 1 et 4 :
Dernière modification le 3 juillet 2026