Gérer les sauvegardes
Cette page décrit les opérations de sauvegarde Bigtable et explique comment sauvegarder une table et la restaurer dans une nouvelle table. Avant de lire cette page, il est important de vous familiariser avec les sauvegardes.
Vous pouvez effectuer des sauvegardes Bigtable au moyen de :
- La console Google Cloud
- Google Cloud CLI
- Les bibliothèques clientes Cloud Bigtable
Vous pouvez également accéder directement à l'API. Toutefois, ceci n'est vivement recommandé que si vous devez utiliser un langage non compatible avec les bibliothèques clientes Cloud Bigtable.
Avant de commencer
Assurez-vous que vous (ou le compte utilisateur que vous utilisez) disposez des autorisations requises pour l'action que vous devez effectuer.
Si vous prévoyez d'utiliser gcloud CLI, installez gcloud CLI pour Bigtable.
Utiliser la sauvegarde automatique
Vous pouvez utiliser la gcloud CLI pour activer la sauvegarde automatique lorsque vous créez ou mettez à jour une table. Les étapes pour supprimer, mettre à jour, copier et restaurer une sauvegarde sont les mêmes, que la sauvegarde soit créée manuellement ou à la suite d'une sauvegarde automatique.
Au cours de l'aperçu, tenez compte des points suivants si vous prévoyez d'activer la sauvegarde automatique:
- Si un cluster est ajouté à une instance contenant une table avec la sauvegarde automatique activée, aucune sauvegarde quotidienne n'est créée sur le cluster ajouté. Pour créer des sauvegardes quotidiennes sur tous les clusters, y compris le nouveau cluster, désactivez la sauvegarde automatique pour la table, puis réactivez la sauvegarde automatique.
- Si une table sur laquelle la sauvegarde automatique est activée est supprimée, puis annulée, vous devez réactiver la sauvegarde automatique sur la table récupérée.
- La restauration d'une sauvegarde automatique de table n'active pas automatiquement la sauvegarde automatique sur la table restaurée. Vous devez activer manuellement la sauvegarde automatique.
Activer la sauvegarde automatique
Pour activer la sauvegarde automatique pour une table, exécutez la commande gcloud bigtable instances
tables update
. Pour en savoir plus sur l'activation de la sauvegarde automatique lors de la création d'une table, consultez la section Créer une table.
Une fois que la stratégie de sauvegarde automatique est activée pour une table, la prise en compte de la configuration mise à jour peut prendre jusqu'à une heure.
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--enable-automated-backup
Remplacez les éléments suivants :
- TABLE_ID: ID de la table à sauvegarder.
- INSTANCE_ID : identifiant permanent de l'instance.
Si vous ne connaissez pas l'ID d'instance, exécutez la commande
bigtable instances list
pour afficher la liste des instances de votre projet:gcloud bigtable instances list
Consultez la liste des tables pour confirmer l'ID de la table que vous souhaitez sauvegarder.
gcloud bigtable instances tables list --instances=INSTANCE_ID
Les sauvegardes créées dans le cadre d'une sauvegarde automatique se voient attribuer un ID commençant par auto
. Par exemple, une table ayant l'ID my-table
possède un ID de sauvegarde automatique tel que auto.my-table.c7x3.20230220-1455
, où my-table
est l'ID de table tronqué, c7x3
est l'ID de hachage unique et 20230220-1455
est la date et l'heure au format UTC.
Désactiver la sauvegarde automatique
Pour désactiver la sauvegarde automatique d'une table existante, exécutez la commande gcloud bigtable
instances tables update
.
Une fois la stratégie de sauvegarde automatique désactivée pour une table, la prise en compte de la configuration mise à jour peut prendre jusqu'à une heure. Un délai de 24 heures peut être nécessaire pour que votre première sauvegarde soit disponible.
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--disable-automated-backup
Remplacez les éléments suivants :
- TABLE_ID: ID de la table.
- INSTANCE_ID : identifiant permanent de l'instance.
Afficher la règle de sauvegarde automatique
Pour afficher la stratégie de sauvegarde automatique d'une table, exécutez la commande gcloud bigtable
instances tables describe
.
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID
Remplacez les éléments suivants :
- TABLE_ID: ID de la table.
- INSTANCE_ID : identifiant permanent de l'instance.
Le résultat ressemble à ceci :
automatedBackupPolicy:
retentionPeriod: 3d
frequency: 24h
columnFamilies:
my-family: {}
createTime: '2023-02-07T20:10:55.613546Z'
granularity: MILLIS
name: projects/my-project/instances/my-instance/tables/my-table
updateTime: '2023-02-07T20:10:55.613546Z'
Veuillez noter les points suivants :
- Le champ
automatedBackupPolicy
est absent lorsque la sauvegarde automatique n'est pas activée pour une table. - Le champ
retentionPeriod
indique la durée de conservation des sauvegardes créées automatiquement. Vous pouvez modifier la durée de conservation d'une sauvegarde jusqu'à 90 jours après sa création. Pour mettre à jour la durée de conservation des sauvegardes, consultez Modifier une sauvegarde.
Créer une sauvegarde
Console
Accédez à la page Instances Bigtable de la console Google Cloud.
Cliquez sur l'instance contenant la table que vous souhaitez sauvegarder.
Dans le volet de navigation de gauche, cliquez sur Tables.
Cliquez sur Créer une sauvegarde en fonction de la table que vous souhaitez sauvegarder.
Si vous utilisez la réplication, choisissez l'ID du cluster dans lequel la sauvegarde doit être stockée dans le menu déroulant. (Si vous avez cliqué sur Créer une sauvegarde à côté d'un ID de cluster plutôt qu'un ID d'instance sur la page Tables, le cluster est présélectionné.)
Saisissez un ID unique pour la sauvegarde.
Définissez une date d'expiration.
Cliquez sur Créer.
La console affiche la page Sauvegardes filtrée pour afficher la sauvegarde et ses détails.
Cliquez sur Activité pour afficher l'état de la sauvegarde.
La colonne d'état indique Sauvegarde terminée lorsque la sauvegarde est terminée.
gcloud
Remplacez toutes les commandes par les valeurs suivantes :
- INSTANCE_ID : identifiant permanent de l'instance.
- CLUSTER_ID : identifiant permanent du cluster.
- TABLE_ID : ID de la table à sauvegarder.
- BACKUP_ID : ID que vous attribuez à la sauvegarde.
EXPIRATION_DATE: date située 90 jours ou moins dans le futur, au format d'horodatage UTC "Zulu" et précis à la nanoseconde près.
Exemple :
2022-10-02T15:01:23.045123456Z
RETENTION_PERIOD: période de 90 jours maximum, exprimée sous la forme d'un nombre avec une unité de
m
,h
oud
(minutes, heures ou jours).Exemples:
36h
ou89d
Si vous ne connaissez pas l'ID d'instance, exécutez la commande
bigtable instances list
pour afficher la liste des instances de votre projet:gcloud bigtable instances list
Affichez la liste des sauvegardes de l'instance contenant la table que vous souhaitez sauvegarder. Vous pourrez ainsi choisir un ID de sauvegarde qui n'est pas déjà utilisé sur le cluster prévu.
gcloud bigtable backups list --instance=INSTANCE_ID \ --cluster=CLUSTER_ID
Consultez la liste des tables pour confirmer l'ID de la table que vous souhaitez sauvegarder.
gcloud bigtable instances tables list --instances=INSTANCE_ID
Exécutez la gcloud bigtable instances backup create pour créer une sauvegarde à partir de la table, en spécifiant une date d'expiration ou une période de conservation pouvant aller jusqu'à 90 jours.
gcloud bigtable backups create BACKUP_ID --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ --table=TABLE_ID \ --async / --expiration-date=EXPIRATION_DATE \ --retention-period=RETENTION_PERIOD
L'option
--async
est facultative. Utilisez-la si vous souhaitez que le terminal renvoie l'ID de l'opération avant que celle-ci prenne fin. Cela est utile si vous souhaitez vérifier l'état de l'opération.Affichez la liste des sauvegardes pour vérifier que votre sauvegarde a été créée.
gcloud bigtable backups list --instance=INSTANCE_ID \ --cluster=CLUSTER_ID
Si la sauvegarde n'est pas répertoriée, vérifiez l'état de l'opération.
L'état
Ready
indique que la sauvegarde est terminée.
Restaurer à partir d'une sauvegarde
Console
Vous ne pouvez pas effectuer de restauration dans un autre projet à l'aide de la console Google Cloud. Si vous devez effectuer cette opération, utilisez plutôt la gcloud CLI.
Accédez à la page Instances Bigtable de la console Google Cloud.
Cliquez sur l'instance contenant la sauvegarde que vous souhaitez restaurer.
Dans le volet de navigation de gauche, cliquez sur Sauvegardes.
Cliquez sur Restaurer pour la sauvegarde que vous souhaitez restaurer.
Sélectionnez l'instance sur laquelle vous souhaitez effectuer la restauration.
Les instances qui ne disposent pas de suffisamment d'espace de stockage pour la nouvelle table sont indisponibles. Si vous ne disposez pas des autorisations nécessaires pour créer une table dans une instance, celle-ci n'est pas disponible. Passez la souris sur l'icône
pour en savoir plus.Si vous effectuez une restauration à partir d'une sauvegarde protégée par une clé CMEK, l'instance de destination doit également être protégée par une clé CMEK.
Vous ne pouvez pas restaurer dans un autre projet à l'aide de la console Google Cloud. Si nécessaire, utilisez plutôt la gcloud CLI.
Saisissez un ID unique pour la table qui sera créée à partir de la sauvegarde. Vous ne pourrez pas modifier cet ID par la suite.
Cliquez sur Restaurer.
La console affiche la page Tables filtrée pour afficher le nouveau tableau.
La console affiche l'état de restauration de chaque cluster. Lorsque la colonne d'état de tous les clusters indique Prêt, la table a été restaurée et répliquée sur tous les clusters de l'instance.
gcloud
Remplacez toutes les commandes par les valeurs suivantes :
- PROJECT_ID_SOURCE: ID du projet contenant la sauvegarde à partir de laquelle effectuer la restauration.
- INSTANCE_ID_SOURCE: ID permanent de l'instance source.
- PROJECT_ID_DESTINATION: ID du projet dans lequel vous souhaitez effectuer la restauration. Cette option est facultative. Si vous ne spécifiez pas cette option, la sauvegarde est restaurée dans une nouvelle table de l'instance où elle a été créée.
- INSTANCE_ID_DESTINATION: ID permanent de l'instance de destination.
- CLUSTER_ID : identifiant permanent du cluster.
- BACKUP_ID: ID de la sauvegarde à partir de laquelle vous souhaitez effectuer la restauration.
- TABLE_ID_NEW: ID de la nouvelle table.
Si vous ne connaissez pas l'ID d'instance, exécutez la commande
bigtable instances list
pour afficher la liste des instances de votre projet:gcloud bigtable instances list
Affichez la liste des sauvegardes de l'instance contenant la sauvegarde pour vérifier que cette dernière existe.
gcloud bigtable backups list --instance=INSTANCE_ID_SOURCE \ --cluster=CLUSTER_ID_SOURCE
Affichez la liste des tables de l'instance de destination, afin de pouvoir choisir un ID qui n'est pas déjà utilisé pour la nouvelle table.
gcloud bigtable instances tables list --instances=INSTANCE_ID_DESTINATION
Exécutez la gcloud bigtable instances tablesbackup pour effectuer une restauration à partir de la sauvegarde dans une nouvelle table.
gcloud bigtable instances tables restore \ --source=projects/PROJECT_ID_SOURCE/instances/INSTANCE_ID_SOURCE/clusters/CLUSTER_ID/backups/BACKUP_ID \ --async \ --destination=TABLE_ID_NEW \ --destination-instance=INSTANCE_ID_DESTINATION \ --project=PROJECT_ID_DESTINATION
L'option
--async
est facultative. Utilisez-la si vous souhaitez que le terminal renvoie l'ID de l'opération avant que celle-ci prenne fin. Cela est utile si vous souhaitez vérifier l'état de l'opération.Affichez la liste des tables pour vérifier que votre table a été créée.
gcloud bigtable instances tables list --instances=INSTANCE_ID_DESTINATION
Si la sauvegarde n'est pas répertoriée, vérifiez l'état de l'opération.
Créer une copie d'une sauvegarde
Console
Vous ne pouvez pas créer une copie d'une sauvegarde dans un autre projet à l'aide de la console. Si vous devez effectuer cette opération, utilisez plutôt la gcloud CLI.
Accédez à la page Instances Bigtable de la console Google Cloud.
Cliquez sur l'instance contenant la sauvegarde que vous souhaitez copier.
Dans le volet de navigation de gauche, cliquez sur Sauvegardes.
Pour la sauvegarde que vous souhaitez copier, développez le menu "Plus" à côté du mot Restaurer, puis cliquez sur Copier.
Cliquez sur Copier pour la sauvegarde dont vous souhaitez créer une copie.
Si la sauvegarde est une copie d'une autre sauvegarde, l'option Copy (Copier) n'est pas disponible.
Sélectionnez l'instance de destination.
Vous ne pouvez pas créer une copie d'une sauvegarde dans un autre projet à l'aide de la console. Si vous devez effectuer cette opération, utilisez plutôt la gcloud CLI.
Les instances qui ne disposent pas d'un espace de stockage suffisant pour la copie de sauvegarde sont indisponibles. Si vous ne disposez pas des autorisations nécessaires pour créer une sauvegarde dans une instance, celle-ci n'est pas disponible. Maintenez le pointeur sur l'icône
pour en savoir plus.Si vous copiez une sauvegarde protégée par une clé CMEK, l'instance de destination doit également l'être.
Sélectionnez le cluster de destination.
Comme pour toute sauvegarde, une copie de sauvegarde n'est stockée que sur un seul cluster d'une instance, même si cette instance utilise la réplication.
Saisissez un ID unique pour la copie qui sera créée à partir de la sauvegarde. Vous ne pourrez pas modifier cet ID par la suite.
Définissez un délai d'expiration pour la copie de sauvegarde, en fournissant une valeur pour le Time (Temps) et en sélectionnant une Unit (Unité) dans le menu déroulant.
Cliquez sur Copier.
Pour afficher votre copie, cliquez sur Afficher la copie.
La console affiche la page Sauvegardes de l'instance de destination, qui affiche la copie de sauvegarde qui vient d'être créée. Lorsque la colonne d'état indique Ready (Prêt), la copie est terminée et prête pour d'autres opérations.
gcloud
Remplacez toutes les commandes par les valeurs suivantes :
- PROJECT_ID_SOURCE: projet contenant la sauvegarde à copier.
- INSTANCE_ID_SOURCE: ID permanent de l'instance source.
- CLUSTER_ID_SOURCE: ID du cluster dans lequel la sauvegarde source est stockée.
- BACKUP_ID_SOURCE: ID de la sauvegarde à copier.
- PROJECT_ID_DESTINATION: projet dans lequel vous souhaitez placer la copie.
- INSTANCE_ID_DESTINATION: ID permanent de l'instance de destination.
- CLUSTER_ID_DESTINATION: ID du cluster de l'instance de destination dans laquelle vous souhaitez stocker la copie.
- BACKUP_ID_DESTINATION: ID que vous attribuez à la copie de la sauvegarde.
- RETENTION_PERIOD: valeur TTL de la copie de sauvegarde, exprimée en nombre et en unité (d ou h). Par exemple,
5d
pour cinq jours ou15h
pour 15 heures. Utilisez cette date ou une date d'expiration. - EXPIRATION_DATE: date et heure d'expiration de la copie de sauvegarde, au format
2022-09-01T10:00:00.0Z
.
Si vous ne connaissez pas l'ID d'instance, exécutez la commande
bigtable instances list
pour afficher la liste des instances de votre projet:gcloud bigtable instances list
Affichez la liste des sauvegardes de l'instance source qui contient la sauvegarde pour vérifier que la sauvegarde que vous souhaitez copier existe.
gcloud bigtable backups list --instance=INSTANCE_ID_SOURCE \ --cluster=CLUSTER_ID_SOURCE
Affichez la liste des sauvegardes dans l'instance de destination afin de pouvoir choisir un ID pour la copie qui n'est pas déjà utilisée.
gcloud bigtable backups list --instances=DESTINATION_INSTANCE
Exécutez la gcloud bigtable instances backup copy pour créer la copie de sauvegarde.
gcloud bigtable backups copy \ --source-project=PROJECT_ID_SOURCE \ --source-instance=INSTANCE_ID_SOURCE \ --source-cluster=CLUSTER_ID_SOURCE \ --source-backup=BACKUP_ID_SOURCE \ --destination-project=PROJECT_ID_DESTINATION \ --destination-instance=INSTANCE_ID_DESTINATION \ --destination-cluster=CLUSTER_ID_DESTINATION \ --destination-backup=BACKUP_ID_DESTINATION \
Ajoutez l'un des éléments suivants à la commande:
--retention-period
`=RETENTION_PERIOD: durée de conservation de la copie de sauvegarde. La durée doit être comprise entre six heures et 30 jours au maximum à compter de la date de création de la sauvegarde source.--expiration-date
`=EXPIRATION_DATE: délai d'expiration de la copie de sauvegarde. La durée doit être comprise entre six heures et 30 jours au maximum à compter de la date de création de la sauvegarde source.
Vous pouvez aussi ajouter
--async
à la commande. Utilisez-la si vous souhaitez que le terminal renvoie l'ID d'opération avant la fin de l'opération. Cela est utile si vous souhaitez vérifier l'état de l'opération.Consultez la liste des sauvegardes pour voir si votre copie a été créée.
gcloud bigtable backups list --instances=INSTANCE_ID_DESTINATION
Si la sauvegarde n'y figure pas, vérifiez l'état de l'opération.
Dans les rares cas où une opération de copie de sauvegarde échoue en raison de limites de capacité, réessayez avec un autre cluster de destination. Si cette opération échoue également, contactez l'assistance.
Vérifier l'état d'une opération
Console
Accédez à la page Instances Bigtable de la console Google Cloud.
Cliquez sur l'instance contenant la sauvegarde.
Dans le volet de navigation de gauche, cliquez sur Sauvegardes.
Sur la page Sauvegardes, cliquez sur Activité. La colonne d'état affiche l'état actuel de chaque opération.
Lors de la restauration d'une table, les états d'opération sont les suivants :
- En attente de copie
- Restauration de la sauvegarde…
- Initialisation…
- Prête pour l'optimisation
- Prête
Lors de la création d'une sauvegarde, les états d'opération sont les suivants:
- Création de la sauvegarde…
- Sauvegarde terminée
Lors de la copie d'une sauvegarde, les états d'opération sont les suivants:
- Copie de la sauvegarde…
- Sauvegarde copiée
gcloud
Pour vérifier l'état d'une opération de sauvegarde ou de restauration, vous avez besoin de l'ID unique de l'opération. Voici un exemple d'ID d'opération :
`instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635`
Une fois que vous avez exécuté une commande pour créer une sauvegarde ou une restauration dans une nouvelle table à l'aide de l'option --async
, le terminal affiche l'ID de l'opération.
Copiez l'ID de l'opération.
Exécutez la commande gcloud bigtable Operations describe en remplaçant
OPERATION_ID
par la valeur que vous avez copiée.gcloud bigtable operations describe OPERATION_ID
Exemple :
gcloud bigtable operations describe \ instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635
Vous pouvez exécuter cette commande à intervalles réguliers jusqu'à ce que la valeur de
DONE
soitTRUE
.
Si vous ne connaissez pas l'ID de l'opération, soit parce que vous n'avez pas exécuté la commande, soit parce que vous vous trouvez dans une autre fenêtre de terminal, vous pouvez afficher la liste des opérations de l'instance et déterminer l'opération à vérifier.
Affichez une liste des activités d'opération récentes de l'instance contenant la table que vous sauvegardez ou restaurez, en remplaçant l'ID de l'instance par
INSTANCE_ID
:gcloud bigtable operations list --instance=INSTANCE_ID
Le terminal affiche une liste d'opérations dans les colonnes
NAME
,START_TIME
,END_TIME
etDONE
. La valeur de la colonneNAME
correspond à l'ID de l'opération.Copiez l'ID de l'opération en commençant par le premier élément de la liste.
Utilisez gcloud bigtable Operations describe pour afficher les métadonnées de l'opération.
gcloud bigtable operations describe OPERATION_ID
Exemple :
gcloud bigtable operations describe \ instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635
Si les métadonnées d'une opération affichent une valeur pour
backupInfo
, vous avez trouvé l'opération appropriée. Vous pouvez répéter cette commande régulièrement jusqu'à ce que la valeur deDONE
corresponde àTRUE
.Si les métadonnées n'affichent pas de valeur pour
backupInfo
, vérifiez l'opération suivante dans la liste des opérations affichées à l'étape 1.
Modifier une sauvegarde ou une copie de sauvegarde
Console
La console Google Cloud ne vous permet pas de modifier les sauvegardes, y compris les copies.
gcloud
La gcloud CLI vous permet de modifier la date ou la période d'expiration d'une sauvegarde ou d'une copie de sauvegarde.
Remplacez toutes les commandes par les valeurs suivantes :
- INSTANCE_ID : identifiant permanent de l'instance.
- CLUSTER_ID : identifiant permanent du cluster.
- BACKUP_ID : ID unique d'une sauvegarde.
EXPIRATION_DATE: date située à 90 jours ou moins dans le futur, au format d'horodatage UTC "Zulu", précise à la nanoseconde près.
Exemple :
2019-10-02T15:01:23.045123456Z
RETENTION_PERIOD: période de 90 jours maximum, exprimée sous la forme d'un nombre avec une unité de
m
,h
oud
(minutes, heures ou jours)._Examples_: `36h` or `89d`
Affichez la liste des sauvegardes :
gcloud bigtable backups list --instance=INSTANCE_ID
Le terminal affiche une liste de sauvegardes.
Notez les ID de sauvegarde et de cluster associés à la sauvegarde que vous devez mettre à jour.
Exécutez la commande gcloud bigtable instances backup update pour ajouter une nouvelle date d'expiration ou une nouvelle période de conservation.
gcloud bigtable backups update BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ --expiration-date=EXPIRATION_DATE \ --retention-period=RETENTION_PERIOD
Exécutez la commande gcloud bigtable instances backup describe pour vérifier que le délai d'expiration a bien été mis à jour.
gcloud bigtable backups describe BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID ```
Supprimer une sauvegarde
Vous pouvez supprimer une sauvegarde ou une copie de sauvegarde avant son expiration planifiée.
Console
Accédez à la page Instances Bigtable de la console Google Cloud.
Cliquez sur l'instance contenant la sauvegarde.
Dans le volet de navigation de gauche, cliquez sur Sauvegardes.
Pour supprimer la sauvegarde, développez le menu "Plus" à côté du mot Restaurer, puis cliquez sur Supprimer.
Saisissez l'ID de sauvegarde dans le champ Confirmer la suppression, puis cliquez sur Supprimer.
gcloud
Affichez la liste des sauvegardes en remplaçant l'ID de l'instance par
INSTANCE_ID
:gcloud bigtable backups list --instance=INSTANCE_ID
Le terminal affiche une liste de sauvegardes.
Notez l'ID de sauvegarde et l'ID du cluster sur lequel elle est stockée.
Exécutez la commande gcloud bigtable instances backup delete en remplaçant
CLUSTER_ID
par l'ID de sauvegarde que vous avez notéBACKUP_ID
et par l'ID de cluster.gcloud bigtable backups delete BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID
Étapes suivantes
- En savoir plus sur les sauvegardes.
- Découvrez comment importer et exporter des données Bigtable.