Sauvegarde et restauration

Présentation

L'outil Sauvegarde et restauration de Cloud Spanner vous permet de créer à la demande des sauvegardes des bases de données Cloud Spanner, et de les restaurer afin d'assurer une protection contre les erreurs d'opérateur ou d'application susceptibles d'occasionner une corruption des données logiques. Les sauvegardes sont hautement disponibles, chiffrées et peuvent être conservées jusqu'à un an après leur création. Si vous avez besoin de les conserver plus longtemps, nous vous recommandons d'exporter votre base de données.

Vous pouvez utiliser Sauvegarde et restauration des manières suivantes :

Pour la corruption des données logiques, Cloud Spanner propose également une récupération à un moment précis.

Principales fonctionnalités

  • Cohérence des données : les sauvegardes sont une copie transactionnelle et cohérente en externe d'une base de données Cloud Spanner au niveau du version_time 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, une copie de la sauvegarde est stockée dans chacune des trois zones en lecture/écriture. Pour les instances multirégionales, une copie est stockée dans toutes les zones contenant une instance dupliquée en lecture/écriture ou en lecture seule.

  • Expiration automatique : la date d'expiration spécifiée par l'utilisateur détermine la date de suppression automatique de toutes les sauvegardes. Cloud 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.

Choisir entre Sauvegarde et restauration et Importation et exportation

Les fonctionnalités Importation et Exportation de Cloud Spanner couvrent des cas d'utilisation semblables à Sauvegarde et restauration. Le tableau suivant décrit les similitudes et les différences entre elles pour vous aider à choisir celle qui convient.

Sauvegarde et restaurationImportation et exportation
Cohérence des données Les sauvegardes et les bases de données exportées sont cohérentes à la fois sur le plan transactionnel et externe.
Impact sur la performance Les sauvegardes n'ont aucun impact sur les performances d'une instance. Cloud Spanner effectue des sauvegardes à l'aide de tâches dédiées qui ne reposent pas sur les ressources du serveur d'une instance. L'exportation est exécutée en tant que tâche de priorité moyenne, afin de minimiser l'impact sur les performances de la base de données. Pour plus d'informations, consultez la section Priorité des tâches.
Format de stockage Utilise un format propriétaire chiffré et conçu pour permettre une restauration rapide. Compatible avec les formats de fichier CSV et Avro.
Portabilité Les sauvegardes sont stockées sur la même instance que leur base de données source et ne peuvent pas être déplacées.

Vous pouvez restaurer une base de données vers n'importe quelle instance du projet ayant la même configuration d'instance que la sauvegarde.
Les bases de données exportées sont stockées dans Google Cloud Storage. Les données peuvent donc être transférées vers tout système compatible avec CSV ou Avro.
Retention Les sauvegardes peuvent être conservées jusqu'à un an. Les bases de données exportées sont stockées dans Cloud Storage. Par défaut, elles sont conservées jusqu'à leur suppression. Vous pouvez personnaliser les règles de cycle de vie et de conservation.
Facturation Les sauvegardes sont facturées sur votre projet Cloud Spanner en fonction de l'espace de stockage utilisé par unité de temps. Pour en savoir plus, consultez la section Facturation. La facturation de l'importation et de l'exportation est plus complexe du fait que ces opérations utilisent Google Cloud Storage et Dataflow. Pour en savoir plus, consultez la section Tarifs d'exportation et d'importation de bases de données.
Délai de restauration La restauration s'effectue en deux opérations : la restauration et l'optimisation. L'opération de restauration permet d'atteindre un temps de latence du premier octet très rapide, car la base de données installe directement la sauvegarde sans copier les données. Une fois l'opération de restauration terminée, la base de données est prête à l'emploi. Toutefois, la latence de lecture peut être légèrement supérieure lors de l'optimisation. Pour en savoir plus, consultez la section Fonctionnement de la restauration. L'importation est plus lente. Vous devez attendre que toutes les données soient écrites dans la base de données.

Fonctionnement de la sauvegarde

Contenu

Les utilisateurs peuvent créer une sauvegarde de n'importe quelle base de données Cloud Spanner. Ces sauvegardes sont complètes, dans la mesure où elles contiennent toutes les données de la base de données (y compris le schéma et les index secondaires) à l'instant version_time de la sauvegarde. Toute modification apportée aux données ou au schéma après l'instant version_time ne sera pas incluse dans cette sauvegarde. Les sauvegardes incluent toutes les options de base de données définies avec la commande ALTER DATABASE SET OPTIONS, mais pas les stratégies Identity and Access Management (IAM).

Chiffrement

Comme les bases de données, les sauvegardes Cloud Spanner sont chiffrées via le chiffrement géré par Google ou 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 autre configuration de chiffrement lorsque vous créez 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 la clé KMS est alternée. Pour en savoir plus, consultez Créer une sauvegarde compatible CMEK.

Processus de création

Lorsque vous créez une sauvegarde, vous devez spécifier une base de données source, le nom de la ressource de sauvegarde et une date d'expiration (jusqu'à un an à partir de l'heure de création de la sauvegarde). Vous pouvez également spécifier un instant version_time, ce qui vous permet de sauvegarder votre base de données à un moment précis. Le champ version_time permet généralement de synchroniser les sauvegardes de plusieurs bases de données ou de récupérer des données à l'aide de la récupération à un moment précis. Si l'élément version_time n'est pas spécifié, il est défini sur l'élément create_time de la sauvegarde. Le système crée une ressource de sauvegarde et une opération de sauvegarde de longue durée afin de suivre la progression de la sauvegarde.

Pour garantir la cohérence externe de la sauvegarde, Cloud Spanner épingle le contenu de la base de données au moment de la création. 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 de lecture/écriture et de lecture seule de l'instance commence à copier les données en parallèle. Si une zone est temporairement indisponible, la sauvegarde n'est pas terminée tant que la zone n'est pas rétablie et qu'elle ne l'est pas. Les sauvegardes peuvent être restaurées dès que l'opération est terminée. Pour les instances multirégionales, toutes les zones de lecture/écriture et de lecture seule de toutes les régions doivent terminer leurs instances dupliquées de sauvegarde avant que la sauvegarde ne soit marquée comme récupérable.

Hiérarchie des ressources

Les sauvegardes sont des ressources dans Cloud 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 projects/<project>/instances/<instance>/backups/<backup>. 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 Cloud 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.

Délai de la sauvegarde et performances

Lors d'une sauvegarde, Cloud 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.

Si une sauvegarde prend plus de temps que d'habitude alors qu'aucun autre facteur n'a changé, cela peut être dû à un retard de planification de la tâche de sauvegarde dans une zone. Cette opération peut parfois 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 sauvegarde.

Fonctionnement de la restauration

Lorsque vous restaurez une base de données Cloud Spanner, vous devez spécifier une sauvegarde source et une nouvelle base de données cible. Vous ne pouvez pas restaurer une sauvegarde vers une base de données existante. La nouvelle base de données doit se trouver dans le même projet que la sauvegarde, sur une instance ayant la même configuration d'instance que la sauvegarde. Par exemple, si une sauvegarde se trouve sur une instance configurée dans la région us-west3, elle peut être restaurée sur toute instance du projet qui est également configurée dans la région us-west3. La capacité de calcul des instances n'a pas besoin d'être identique.

La base de données restaurée contiendra toutes les données ainsi que le schéma de la base de données d'origine, à l'instant de création create_time de la sauvegarde, y compris toutes les options de base de données définies avec la commande ALTER DATABASE SET OPTIONS. Elle ne comprendra pas d'autorisations IAM (à l'exception de celles héritées de l'instance contenant la base de données restaurée), et vous devez donc appliquer les autorisations IAM appropriées une fois la restauration terminée.

Le processus de restauration est conçu pour la haute disponibilité. La base de données peut être restaurée, à condition que le quorum majoritaire des régions et des zones de l'instance soit disponible.

Pour restaurer une sauvegarde avec CMEK activé, la clé et la version de clé doivent être disponibles pour Cloud Spanner. La base de données restaurée utilise par défaut la même configuration de chiffrement que la sauvegarde. Vous pouvez ignorer ce comportement en spécifiant une autre configuration de chiffrement lors de la restauration de la base de données. Pour en savoir plus, consultez la section Restaurer à partir d'une sauvegarde avec CMEK activé.

Une base de données restaurée passe à trois états suivis par deux opérations de longue durée.

  • CREATING : Cloud Spanner lance la restauration en créant une base de données et en installant les fichiers de la sauvegarde. Cela ne prend généralement que dix minutes. Pendant cet état initial de CREATING, la base de données restaurée n'est pas encore prête à être utilisée.

    Pour suivre la progression de cet état, vous pouvez interroger l'opération de restauration de longue durée proposée par Cloud Spanner au cours de ce processus. Il renvoie un objet RestoreDatabaseMetadata.

    Veuillez noter les mises en garde suivantes concernant l'État CREATING:

    • Si vous effectuez une restauration sur une autre instance, l'opération de restauration appartient à l'instance contenant la base de données restaurée, et non à l'instance contenant la sauvegarde.
    • Cloud Spanner ne vous permettra pas de supprimer la sauvegarde pendant sa restauration. Vous pouvez la supprimer une fois la restauration terminée et que la base de données passe à l'état READY ou si vous annulez l'opération de restauration.
    • Une instance ne peut pas avoir plus d'une base de données à l'état CREATING en raison d'une restauration à partir d'une sauvegarde. Vous ne pourrez pas restaurer une autre sauvegarde sur l'instance tant que la base de données restaurée ne passera pas à l'état READY_OPTIMIZING ou READY, comme décrit ci-dessous.
  • READY_OPTIMIZING: après que Cloud Spanner a installé la sauvegarde, elle commence à copier ses données dans la nouvelle base de données tout en optimisant sa taille stockée. Votre base de données est prête à être utilisée pendant ce processus. Selon la quantité de données concernées, cette phase de restauration peut prendre plusieurs jours.

    Bien que vous puissiez utiliser votre base de données comme d'habitude pendant READY_OPTIMIZING, les mises en garde suivantes s'appliquent:

    • La latence de lecture peut être légèrement supérieure à d'habitude.
    • Les métriques de stockage affichent la taille de la nouvelle base de données, pas la sauvegarde. Par conséquent, avec le transfert de données en cours, les métriques de stockage de Cloud Spanner peuvent afficher des résultats qui ne reflètent pas la taille totale de toutes vos données.
    • Comme pour l'état CREATING, Cloud Spanner ne vous permet pas de supprimer la sauvegarde installée.

    Cloud Spanner active une autre opération de restauration de longue durée dans cet état, cette fois en renvoyant un objet de métadonnées OptimizeRestoredDatabaseMetadata.

  • READY : une fois l'opération de copie et d'optimisation terminée, la base de données passe à l'état READY. La base de données est entièrement restaurée et ne nécessite plus de référence ni de sauvegarde.

Facturation

Vous êtes facturé en fonction de la quantité d'espace de stockage utilisée par vos sauvegardes par unité de temps. La facturation commence dès que l'opération de sauvegarde est terminée et se poursuit jusqu'à la suppression de la sauvegarde. Aucuns frais ne s'appliquent pour la restauration d'une sauvegarde.

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.

Une sauvegarde terminée est facturée pour une durée minimale de 24 heures. Si vous créez une sauvegarde, puis la supprimez une minute après qu'elle se termine, vous êtes toujours facturé pour 24 heures.

Pour en savoir plus sur le coût des sauvegardes, consultez la page Tarifs de Cloud Spanner.

Contrôle des accès avec IAM

IAM vous permet de contrôler l'accès aux ressources Cloud Spanner, ce qui inclut les sauvegardes et les bases de données restaurées. Si vous débutez avec l'utilisation d'IAM, des rôles et des autorisations, consultez la page Présentation d'IAM pour obtenir une introduction.

Les ressources de sauvegarde sont organisées sous les instances dans la hiérarchie des ressources Cloud Spanner. Nous vous recommandons d'appliquer des stratégies IAM au niveau du projet ou de l'instance. Si vous avez besoin d'un contrôle plus précis, vous pouvez également appliquer des stratégies IAM au niveau de la sauvegarde et de la base de données. Toutefois, cette pratique n'est pas recommandée en raison de sa complexité. N'oubliez pas que les sauvegardes n'incluent pas les métadonnées de base de données telles que les stratégies IAM. Par conséquent, lorsque vous restaurez une base de données, celle-ci hérite initialement des stratégies de son instance parente.

Cette section décrit les rôles prédéfinis qui ont accès à la sauvegarde et à la restauration.

Les rôles suivants sont spécifiquement conçus pour la sauvegarde et la restauration :

  • spanner.backupAdmin : peut créer, afficher, mettre à jour et supprimer des sauvegardes. Ce rôle permet également d'afficher et de gérer la stratégie IAM d'une sauvegarde. Ce rôle ne peut pas restaurer une base de données à partir d'une sauvegarde.
  • spanner.restoreAdmin : peut restaurer des bases de données à partir de sauvegardes. Si vous devez restaurer une sauvegarde sur une autre instance, appliquez ce rôle au niveau du projet ou aux deux instances. Ce rôle ne peut pas créer de sauvegardes.
  • spanner.backupWriter : peut créer des sauvegardes, mais ne peut pas les mettre à jour, ni les supprimer. Ce rôle est destiné aux scripts qui automatisent la création de sauvegardes.

Les rôles suivants ont également accès à la sauvegarde et à la restauration :

  • spanner.admin : dispose d'un accès complet à la sauvegarde et à la restauration. Ce rôle dispose d'un accès complet à toutes les ressources Cloud Spanner.
  • owner : dispose d'un accès complet à la sauvegarde et à la restauration.
  • editor : dispose d'un accès complet à la sauvegarde et à la restauration.
  • viewer : peut afficher les sauvegardes, les opérations de sauvegarde et les opérations de restauration. Ce rôle ne peut pas créer, mettre à jour, supprimer ou restaurer une sauvegarde.

Pour en savoir plus, consultez la page Contrôle des accès pour Cloud Spanner.