Gérer les sauvegardes
Cette page décrit les opérations de sauvegarde Bigtable et explique comment sauvegarder une table et effectuer une restauration 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.
Pendant la phase preview, tenez compte des points suivants si vous prévoyez d'activer la sauvegarde automatique:
- Si un cluster est ajouté à une instance contenant une table pour laquelle la sauvegarde automatique est activée, les sauvegardes quotidiennes ne sont pas créées sur le cluster ajouté. Pour créer des sauvegardes quotidiennes sur tous les clusters, y compris le cluster que vous venez d'ajouter, désactivez la sauvegarde automatique pour la table, puis réactivez la sauvegarde automatique.
- Si une table pour 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 d'une 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 Créer une table.
Une fois la règle de sauvegarde automatique 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 des ID commençant par auto
. Par exemple, une table ayant l'ID my-table
aurait 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 pour une table existante, exécutez la commande gcloud bigtable
instances tables update
.
Une fois la règle de sauvegarde automatique désactivée pour une table, la prise en compte de la configuration mise à jour peut prendre jusqu'à une heure. Il peut s'écouler jusqu'à 24 heures avant que votre première sauvegarde ne 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 règle 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.
La sortie 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
n'est pas renseigné 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 date de création. Pour mettre à jour la durée de conservation d'une sauvegarde, 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, utilisez le menu déroulant pour choisir l'ID du cluster dans lequel stocker la sauvegarde. (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 à 90 jours ou moins dans le futur, formatée en tant qu'horodatage UTC "Zulu", avec une précision à la nanoseconde près.
Exemple :
2022-10-02T15:01:23.045123456Z
RETENTION_PERIOD: période de 90 jours maximum, exprimée sous forme de nombre et ayant l'unité
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 commande gcloud bigtable instances backup create pour créer une sauvegarde à partir de la table, en indiquant une date d'expiration ou une durée de conservation allant 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 restaurer vers un autre projet à l'aide de la console Google Cloud. Si nécessaire, 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 d'un espace de stockage suffisant pour la nouvelle table sont indisponibles. Si vous ne disposez pas des autorisations nécessaires pour créer une table dans une instance, l'instance est indisponible. 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 vers 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 restaurer la sauvegarde
- 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 commande gcloud bigtable instances tables RESTful pour effectuer une restauration à partir de la sauvegarde vers 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 de copie d'une sauvegarde dans un autre projet à l'aide de la console. Si nécessaire, 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 à 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 Copier n'est pas disponible.
Sélectionnez l'instance de destination.
Vous ne pouvez pas créer de copie d'une sauvegarde dans un autre projet à l'aide de la console. Si nécessaire, 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 est indisponible. 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 être protégée par une clé CMEK.
Sélectionnez le cluster de destination.
Comme toute sauvegarde, une copie de sauvegarde est stockée 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 indiquant une valeur pour le champ Time (Heure) 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, filtrée pour ne garder que la copie de sauvegarde créée. Lorsque la colonne d'état affiche Ready, 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 lequel vous souhaitez stocker la copie.
- BACKUP_ID_DESTINATION: ID que vous attribuez à la copie de la sauvegarde.
- RETENTION_PERIOD: valeur TTL (Time To Live) de la copie de sauvegarde, exprimée sous forme de nombre et d'unité (d ou h). Par exemple,
5d
pendant cinq jours ou15h
pendant 15 heures. Utilisez cette date ou une date d'expiration. - EXPIRATION_DATE: date et heure auxquelles la copie de sauvegarde expire, 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 afin de vérifier que celle que vous souhaitez copier existe.
gcloud bigtable backups list --instance=INSTANCE_ID_SOURCE \ --cluster=CLUSTER_ID_SOURCE
Affichez la liste des sauvegardes de l'instance de destination afin de pouvoir choisir un ID pour la copie qui n'est pas déjà utilisé.
gcloud bigtable backups list --instances=DESTINATION_INSTANCE
Exécutez la commande gcloud bigtable instances connections 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. Le délai doit être compris entre 6 heures et 30 jours à compter de la création de la sauvegarde source.--expiration-date
`=EXPIRATION_DATE: expiration de la copie de sauvegarde. Le délai doit être compris entre 6 heures et 30 jours à compter de la création de la sauvegarde source.
Vous pouvez éventuellement ajouter
--async
à la commande. Utilisez-le si vous souhaitez que le terminal renvoie l'ID de l'opération avant la fin de l'opération. Cela est utile si vous souhaitez vérifier l'état de l'opération.Si un message d'expiration de délai est renvoyé, il se peut que la sauvegarde ait bien été effectuée et que la copie ait été créée.
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'est pas répertoriée, vérifiez l'état de l'opération.
Dans les rares cas où une opération de copie de sauvegarde échoue en raison d'une limite 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
Voici les différents états des opérations lors de la création d'une sauvegarde:
- Création de la sauvegarde…
- Sauvegarde terminée
Voici les différents états des opérations lors de la copie d'une sauvegarde:
- 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
, recherchez l'opération suivante dans la liste des opérations affichée à l'étape 1.
Modifier une sauvegarde ou une copie de sauvegarde
Console
La console Google Cloud ne vous permet pas de modifier une sauvegarde, 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 à 90 jours ou moins dans le futur, au format d'horodatage UTC "Zulu", avec une précision à 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 et de l'unité
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 credentials update pour ajouter une date d'expiration ou une 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 connections describe pour vérifier que vous avez bien mis à jour la date d'expiration.
gcloud bigtable backups describe BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID ```
Supprimer une sauvegarde
Si vous souhaitez supprimer une sauvegarde après en avoir créé une copie, vérifiez son état pour vous assurer que l'opération de copie est terminé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 connections delete, en remplaçant l'ID de sauvegarde que vous avez noté pour
BACKUP_ID
et l'ID de cluster parCLUSTER_ID
.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.