Présentation des sauvegardes

Ce document présente les sauvegardes et les planifications de sauvegarde Spanner.

Spanner vous permet de créer des sauvegardes complètes de bases de données à la demande, ainsi que des sauvegardes complètes ou incrémentielles à l'aide d'un calendrier de sauvegarde. Les sauvegardes complètes stockent l'intégralité des données d'une base de données, tandis que les sauvegardes incrémentielles ne contiennent que les données qui ont été modifiées depuis une sauvegarde précédente.

Vous pouvez restaurer les sauvegardes lorsque des erreurs d'opérateur ou d'application entraînent une corruption logique des données.

Les sauvegardes sont disponibilité élevée, chiffrées et peuvent être conservées jusqu'à un an après leur création. Lorsque vous créez une sauvegarde, elle se trouve dans la même instance, région et projet que sa base de données source. Si vous devez restaurer la sauvegarde dans une autre région ou un autre projet pour des raisons de conformité ou de continuité des activités, vous pouvez la copier sur une instance dans une région ou un projet distincts.

Principales fonctionnalités

  • Cohérence des données: les sauvegardes d'une base de données Spanner sont cohérentes sur le plan transactionnel et externe au niveau du versionTime de la sauvegarde.

  • Réplication: les sauvegardes se trouvent dans la même instance que leur base de données source et sont répliquées dans les mêmes emplacements géographiques. Pour les instances régionales, la sauvegarde est stockée dans chacune des trois zones en lecture/écriture. Pour les instances birégionales et multirégionales, la sauvegarde est stockée dans toutes les zones contenant une instance dupliquée en lecture/écriture ou en lecture seule. Si vous devez stocker la sauvegarde de votre base de données dans une autre région ou un autre projet, vous pouvez copier la sauvegarde terminée de l'instance source vers une instance de destination située dans une autre région ou un autre projet. Pour en savoir plus, consultez Copier une sauvegarde.

  • Expiration automatique: la date d'expiration spécifiée par l'utilisateur détermine la date de suppression automatique de toutes les sauvegardes. Spanner supprime les sauvegardes expirées de manière asynchrone. Il peut donc y avoir un décalage entre le moment où une sauvegarde expire et celui où elle est réellement supprimée.

Créer une sauvegarde

Lorsque vous créez une sauvegarde, elle se trouve dans la même instance, région et projet que sa base de données source. Une sauvegarde contient les informations suivantes de la base de données au moment de la versionTime de la sauvegarde:

  • Une sauvegarde complète contient toutes les données. Une sauvegarde incrémentielle ne contient que les données modifiées depuis une sauvegarde précédente.
  • Informations sur le schéma, y compris les noms de table, les champs, les types de données, les index secondaires, les flux de modifications et les relations entre ces entités.
  • Toutes les options de base de données définies avec la commande ALTER DATABASE SET OPTIONS.

Une sauvegarde Spanner n'inclut pas les informations suivantes:

  • Toute modification apportée aux données ou au schéma après l'versionTime.
  • Stratégies IAM (Identity and Access Management)
  • Enregistrements de données de flux de modifications. Bien que le schéma des flux de modifications soit stocké, les données du flux de modifications sont destinées à être diffusées et consommées presque simultanément avec les modifications qu'elles décrivent.

Pour garantir la cohérence externe de la sauvegarde, Spanner épingle le contenu de la base de données à versionTime. Cela empêche le système de récupération de mémoire de supprimer les valeurs de données pertinentes pendant la durée de l'opération de sauvegarde. Ensuite, chaque zone en lecture-écriture et en lecture seule de l'instance commence à copier les données en parallèle. Si une zone est temporairement indisponible, la sauvegarde ne se termine qu'une fois la zone de nouveau en ligne. Les sauvegardes peuvent être restaurées dès que l'opération est terminée. Pour les instances multirégionales, toutes les zones en lecture/écriture et en lecture seule de toutes les régions doivent terminer leurs réplications de sauvegarde avant que la sauvegarde ne soit marquée comme pouvant être restaurée.

Planifications de sauvegarde

Spanner vous permet de planifier des sauvegardes complètes ou incrémentielles pour les bases de données. Une sauvegarde incrémentielle ne contient que les données qui ont été modifiées depuis une sauvegarde précédente, tandis que les sauvegardes complètes stockent l'intégralité du contenu de la base de données. Vous pouvez spécifier le type de planification de sauvegarde (complète ou incrémentielle) et la fréquence à laquelle Spanner doit créer des sauvegardes.

Un calendrier de sauvegarde complète peut créer une sauvegarde toutes les 12 heures ou plus. Un calendrier de sauvegarde incrémentielle peut créer une sauvegarde toutes les quatre heures ou plus.

Spanner propose des sauvegardes incrémentielles pour votre base de données via un calendrier de sauvegarde. Vous ne pouvez pas créer de sauvegarde incrémentielle à la demande.

La création de la sauvegarde commence dans un délai de quatre heures suivant l'heure programmée. Vous ne pouvez définir qu'un maximum de quatre planifications de sauvegarde par base de données.

Sauvegardes incrémentielles

Les sauvegardes incrémentielles forment des chaînes entre les sauvegardes complètes. La première sauvegarde créée par un calendrier de sauvegarde incrémentielle est une sauvegarde complète. Les sauvegardes consécutives créées dans la chaîne sont des sauvegardes incrémentielles, chacune ne contenant que les données modifiées depuis la sauvegarde précédente de la chaîne.

Spanner autorise jusqu'à 13 sauvegardes incrémentielles par chaîne, en plus de la sauvegarde complète initiale. Une chaîne est identifiée par la valeur incrementalBackupChainId correspondante. Lorsqu'une chaîne atteint sa longueur maximale, Spanner crée une nouvelle chaîne, en commençant par la sauvegarde complète initiale.

Dans certains cas, Spanner peut créer une nouvelle chaîne avant que la longueur maximale de la chaîne ne soit atteinte. Voici quelques exemples de scénarios:

  • La sauvegarde complète la plus ancienne a été effectuée il y a 28 jours ou plus.
  • La sauvegarde la plus récente de la chaîne est supprimée.
  • La planification des sauvegardes incrémentielles est modifiée.

Voici quelques facteurs qui peuvent vous aider à décider d'utiliser des sauvegardes incrémentielles:

  • Chiffrement: les sauvegardes incrémentielles ne prennent en charge que le chiffrement à l'aide de clés de chiffrementappartenant à Google et gérées par Google , même si la base de données est chiffrée par une clé de chiffrement gérée par le client (CMEK).

  • Restauration: la restauration d'une sauvegarde incrémentielle peut prendre plus de temps que la restauration d'une sauvegarde complète contenant les mêmes données.

  • Suppression: si vous supprimez une sauvegarde dans une chaîne ou si elle expire, Spanner peut toujours la conserver pour prendre en charge les sauvegardes plus récentes de la chaîne, le cas échéant. Spanner a besoin de toutes les anciennes sauvegardes de la chaîne pour restaurer une sauvegarde incrémentielle. Pour supprimer toutes les données d'une chaîne de sauvegardes, y compris celles des sauvegardes expirées ou supprimées, supprimez toutes les sauvegardes de la chaîne.

  • Rétention: chaque planification de sauvegarde comporte les termes suivants qui fournissent des informations sur la planification:

    • creation_interval: représente la fréquence de planification spécifiée pour la planification de sauvegarde.
    • retention_duration: représente la durée de conservation des sauvegardes créées par la planification. Pour une chaîne donnée, la sauvegarde complète la plus ancienne est conservée au-delà de sa date d'expiration d'origine si elle est nécessaire pour prendre en charge les sauvegardes plus récentes de la chaîne. La durée de conservation totale de la sauvegarde complète est au maximum la valeur la plus basse parmi les suivantes :
      • retention_duration + 28 jours
      • retention_duration + (creation_interval*14)
  • Copie de sauvegarde: lorsque vous copiez une sauvegarde incrémentielle, Spanner copie la chaîne de sauvegardes, en commençant par la sauvegarde complète initiale et en terminant par la sauvegarde incrémentielle spécifique que vous souhaitez copier. Spanner vous facture en fonction de l'espace de stockage total utilisé.

Pour en savoir plus sur la création de sauvegardes incrémentielles, consultez la section Créer et gérer des planifications de sauvegarde.

Planifications de sauvegarde par défaut

Lorsque vous créez une instance Spanner, vous pouvez spécifier si vous souhaitez que Spanner crée un calendrier de sauvegarde par défaut pour chaque nouvelle base de données de l'instance. La planification des sauvegardes par défaut crée une sauvegarde complète toutes les 24 heures. La durée de conservation de ces sauvegardes est de sept jours. Vous pouvez modifier ou supprimer la planification de sauvegarde par défaut une fois qu'elle a été créée.

Les planifications de sauvegarde par défaut sont automatiquement activées pour toutes les nouvelles instances. Vous pouvez activer ou désactiver les planifications de sauvegarde par défaut dans une instance lors de sa création ou en la modifiant ultérieurement.

Vous pouvez activer les planifications de sauvegarde par défaut pour les instances existantes. Toutefois, les planifications de sauvegarde par défaut ne s'appliquent pas aux bases de données existantes de l'instance. Les planifications de sauvegarde par défaut ne s'appliquent qu'aux nouvelles bases de données de l'instance.

La planification de sauvegarde par défaut prend 24 heures pour devenir active et commencer à créer des sauvegardes.

Vous devez supprimer toutes les sauvegardes d'une instance avant de la supprimer. Si vous créez et supprimez des instances à des fins de test, vous pouvez supprimer la nouvelle instance dans les 24 heures pour éviter de supprimer manuellement ses sauvegardes.

Pour savoir comment activer ou désactiver les planifications de sauvegarde par défaut, consultez la section Modifier le type de planification de sauvegarde par défaut.

Coûts de stockage pour les sauvegardes complètes et incrémentielles

Chaque sauvegarde Spanner comporte les champs suivants, qui fournissent des informations sur la consommation de stockage:

  • exclusiveSizeBytes: indique le nombre d'octets requis par la sauvegarde. Cette taille correspond à la taille facturable de la sauvegarde.
  • freeableSizeBytes: indique le nombre d'octets libérés si vous supprimez la sauvegarde.
  • oldestVersionTime: affiche le versionTime de la sauvegarde complète la plus ancienne de la chaîne, même si cette sauvegarde a expiré. Vous pouvez utiliser ce champ pour comprendre quelles données sont stockées.

Les sauvegardes incrémentielles peuvent vous faire économiser des coûts de stockage. Une sauvegarde incrémentielle peut avoir un champ exclusiveSizeBytes nettement plus petit qu'une sauvegarde complète, car la sauvegarde incrémentielle ne doit stocker que les modifications apportées depuis la sauvegarde précédente de la chaîne. Ajouter la valeur de ce champ pour chaque sauvegarde de la chaîne reflète le nombre total d'octets utilisés par les sauvegardes de la chaîne.

Pour être restaurée, une sauvegarde incrémentielle dépend de toutes les sauvegardes plus anciennes de la même chaîne. Cela signifie que si une sauvegarde incrémentielle plus récente existe, les données de toutes les sauvegardes plus anciennes de la chaîne ne peuvent pas être supprimées du système et le champ freeableSizeBytes de toutes les sauvegardes plus anciennes de la même chaîne est nul.

Imaginons que vous ayez créé un calendrier de sauvegarde complète et un calendrier de sauvegarde incrémentielle pour une base de données de 100 Go qui augmente de 10 Go par jour. Le tableau suivant présente les coûts de stockage possibles pour ces calendriers de sauvegarde:

Jour Taille de la sauvegarde complète planifiée Taille de la sauvegarde planifiée incrémentielle
1 100 Go 100 Go
2 110 Go 10 Go
3 120 Go 10 Go
4 130 Go 10 Go
5 140 Go 10 Go

Sur cinq jours, le calendrier de sauvegarde complète utilise 600 Go d'espace de stockage, tandis que le calendrier de sauvegarde incrémentielle utilise environ 140 Go d'espace de stockage. Pour un calendrier de sauvegarde incrémentielle, la taille de la sauvegarde complète correspond à la somme des tailles de toutes les sauvegardes de la chaîne, jusqu'à cette sauvegarde, et est reflétée dans le champ sizeBytes.

Fonctionnement de la copie de sauvegarde

La sauvegarde et la restauration Spanner vous permettent de copier une sauvegarde de votre base de données Spanner d'une instance à une autre dans une autre région ou un autre projet, afin de fournir des fonctionnalités supplémentaires de protection des données et de conformité. La sauvegarde copiée présente les mêmes fonctionnalités clés que la sauvegarde d'origine. De plus, vous pouvez restore une sauvegarde copiée dans la même instance que la sauvegarde copiée pour prendre en charge les cas d'utilisation de sauvegarde et de restauration interrégionaux et interprojets.

Emplacement de stockage des sauvegardes Spanner

Les sauvegardes sont des ressources dans Spanner. Chaque ressource de sauvegarde fait partie de la même instance que sa base de données source, où elle est organisée dans la hiérarchie des ressources et possède un chemin d'accès à la ressource au format suivant:

projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_NAME

Remplacez l'élément suivant :

  • PROJECT_ID : ID du projet.
  • INSTANCE_ID : ID de l'instance.
  • BACKUP_NAME: nom de la sauvegarde.

Une sauvegarde continue d'exister même après la suppression de sa base de données source, mais elle ne peut pas survivre à son instance parente. Pour éviter toute suppression accidentelle des sauvegardes, vous ne pouvez pas supprimer une instance Spanner si elle inclut des sauvegardes. Si vous souhaitez supprimer l'instance, nous vous recommandons de restaurer la sauvegarde, puis d'exporter la base de données restaurée avant de supprimer la sauvegarde et l'instance.

Chiffrement

Les sauvegardes Spanner, comme les bases de données, sont chiffrées par des clés de chiffrementappartenant à Google et gérées par Google ou par des clés de chiffrement gérées par le client (CMEK). Par défaut, une sauvegarde utilise la même configuration de chiffrement que sa base de données, mais vous pouvez ignorer ce comportement en spécifiant une configuration de chiffrement différente lors de la création de la sauvegarde. Si la sauvegarde est compatible avec les CMEK, elle est chiffrée à l'aide de la version principale de la clé KMS au moment de la création de la sauvegarde. Une fois la sauvegarde créée, la clé et la version de clé associées ne peuvent plus être modifiées, même si une rotation de clé KMS est appliquée. Pour en savoir plus, consultez la section Créer une sauvegarde compatible avec CMEK.

Une sauvegarde copiée utilise la même configuration de chiffrement, des clés de chiffrementappartenant à Google et gérées par Google ou des clés de chiffrement gérées par le client (CMEK), que le chiffrement de la sauvegarde source. Vous pouvez ignorer ce comportement en spécifiant une configuration de chiffrement différente lors de la copie de la sauvegarde. Si vous souhaitez que la sauvegarde copiée soit chiffrée avec CMEK lors d'une copie entre régions, spécifiez la clé Cloud KMS correspondant à la région de destination.

Vous pouvez spécifier la configuration du chiffrement lorsque vous créez ou modifiez la planification de sauvegarde. Si vous souhaitez que la planification de sauvegarde crée des sauvegardes chiffrées par des clés CMEK, vous devez spécifier le chemin d'accès à la clé.

Les sauvegardes incrémentielles ne prennent en charge que le chiffrement à l'aide de clés de chiffrementappartenant à Google et gérées par Google , même si la base de données est chiffrée par une clé CMEK.

Performance

Cette section décrit les performances de sauvegarde optimales dans Spanner.

Performances lors de la sauvegarde

Lors d'une sauvegarde, Spanner crée une tâche de sauvegarde pour copier les données directement depuis la base de données vers l'espace de stockage de sauvegarde et dimensionne cette tâche en fonction de la taille de la base de données. Cette tâche de sauvegarde n'utilise pas les ressources de processeur allouées à l'instance de la base de données et n'affecte donc pas les performances de l'instance. De plus, la charge de calcul sur l'instance de la base de données n'affecte pas la vitesse de l'opération de sauvegarde. Pour suivre la progression et l'achèvement d'une opération de sauvegarde, consultez la section Afficher la progression de la sauvegarde.

En général, la plupart des sauvegardes prennent entre une et quatre heures. Certaines sauvegardes peuvent prendre plus de temps en raison de leur taille ou en raison d'une mise en file d'attente interne des ressources. Si une sauvegarde prend plus de temps que d'habitude lorsqu'aucun autre facteur n'a changé, cela peut être dû à un délai de planification de la tâche de sauvegarde dans une zone. Cette opération peut prendre jusqu'à 30 minutes. Nous vous recommandons de ne pas annuler et redémarrer la sauvegarde, car il est probable que vous rencontriez le même délai de planification avec la nouvelle opération de sauvegarde.

Performances lors de la copie d'une sauvegarde

Le temps nécessaire pour copier une sauvegarde dépend de facteurs tels que la taille de la sauvegarde source et la région de destination choisie pour la sauvegarde copiée. En général, la plupart des copies sont créées en une à quatre heures. Certaines copies peuvent prendre plus de temps en fonction de la taille de la sauvegarde et de la région de destination. La copie d'une sauvegarde n'a aucun impact sur les performances de l'instance ou de la base de données source. Vous pouvez créer plusieurs copies simultanées de la sauvegarde source sur des instances dans différentes régions sans aucun impact sur les performances.

Lorsque vous copiez une sauvegarde incrémentielle, Spanner copie également toutes les anciennes sauvegardes de la chaîne. Au lieu de copier la chaîne de sauvegardes une par une, Spanner copie toutes les sauvegardes simultanément pour améliorer les performances.

Supprimer une sauvegarde

Lorsque vous supprimez une sauvegarde incrémentielle, vous ne pouvez pas récupérer de l'espace de stockage si des sauvegardes incrémentielles plus récentes sont présentes dans la même chaîne. Les sauvegardes incrémentielles plus récentes dépendent des données présentes dans la sauvegarde incrémentielle supprimée et des sauvegardes plus anciennes de la chaîne. Spanner conserve les données et ne libère l'espace de stockage que lorsque toutes les sauvegardes incrémentielles plus récentes expirent. Le champ freeableSizeBytes indique l'espace de stockage que vous pouvez récupérer si vous supprimez la sauvegarde.

Tarifs

Vous êtes facturé en fonction de la quantité d'espace de stockage utilisée par vos sauvegardes par unité de temps. La facturation commence après l'opération de sauvegarde et se poursuit jusqu'à la suppression de la sauvegarde. Une sauvegarde terminée est facturée pour une durée minimale de 24 heures. Si vous créez une sauvegarde, puis la supprimez peu de temps après qu'elle se termine, vous êtes toujours facturé pour 24 heures.

Une copie d'une sauvegarde est soumise aux mêmes coûts de stockage qu'une sauvegarde d'origine. Si vous créez une copie entre deux instances occupant différentes régions, des frais de transfert de données sortantes s'appliquent.

Par exemple, si vous copiez votre base de données de la configuration d'instance multirégionale source nam7 vers la configuration d'instance multirégionale de destination nam-eur-asia3, les frais suivants s'appliquent:

  • Aucuns frais pour la région us-central1 en chevauchement
  • Sans frais pour la région de témoin us-central2
  • Les frais de transfert de données intercontinental s'appliquent deux fois: une fois pour chaque nouveau continent (Europe et Asie).
  • Les frais de transfert de données entre régions du même continent s'appliquent une seule fois pour us-east1.
  • Les frais de transfert de données entre régions du même continent s'appliquent une fois en Europe.

Spanner optimise le processus de copie pour réduire le nombre de transferts interrégionaux. Cela permet de minimiser les coûts de transfert de données tout en offrant une expérience de sauvegarde par copie rapide.

Les sauvegardes sont stockées et facturées séparément. Le stockage des sauvegardes n'a pas d'incidence sur la facturation du stockage des bases de données ni sur les limites de stockage des bases de données. Pour en savoir plus, consultez également la section Métriques d'utilisation du stockage.

Pour en savoir plus sur le coût des sauvegardes, consultez les tarifs de Spanner.

Étape suivante