Spanner Omni vous permet de créer des sauvegardes complètes de bases de données à la demande ou à l'aide d'un calendrier de sauvegarde. Les sauvegardes stockent l'intégralité des données d'une base de données. Vous pouvez restaurer les sauvegardes lorsque des erreurs d'opérateur ou d'application entraînent une corruption logique des données.
Présentation de la sauvegarde Spanner Omni
Les sauvegardes sont disponibilité élevée et peuvent être conservées pendant un an maximum à compter de leur date de création. Chaque sauvegarde est associée à un createTime et à un versionTime. createTime est l'horodatage du moment où Spanner Omni commence à créer la sauvegarde. versionTime correspond au code temporel auquel la sauvegarde capture le contenu de la base de données. La sauvegarde contient une vue cohérente de la base de données au niveau de versionTime.
Pour les sauvegardes à la demande, les valeurs createTime et versionTime sont identiques par défaut. Si nécessaire, vous pouvez spécifier un versionTime plus ancien lors de la création d'une sauvegarde à la demande, s'il se trouve dans la période de conservation de la version de la base de données.
Pour les sauvegardes planifiées, versionTime correspond à l'heure que vous choisissez lorsque vous créez la planification de sauvegarde. Spanner Omni commence à créer la sauvegarde dans les quatre heures suivant l'heure de début (versionTime). Par conséquent, l'heure de création (createTime) se situe dans cette période de quatre heures. Cela diffère des sauvegardes à la demande, pour lesquelles Spanner Omni commence à créer la sauvegarde dès qu'il reçoit la requête.
Par exemple, supposons que vous créiez une programmation de sauvegarde avec une fréquence de 0 7 * * *
UTC (tous les jours à 7h00 UTC). Cela signifie que pour chaque sauvegarde, l'heure versionTime est 7h00 UTC et l'heure createTime est un code temporel compris dans la période de quatre heures entre 7h00 UTC et 11h00 UTC.
Les sauvegardes Spanner Omni ne peuvent être restaurées que dans des déploiements Spanner Omni. Vous ne pouvez pas restaurer une sauvegarde Spanner gérée dans Spanner Omni, ni restaurer une sauvegarde Spanner Omni dans Spanner géré. Pour transférer des données entre Spanner et Spanner Omni, utilisez des flux de modifications ou exportez et importez des fichiers Avro. Pour en savoir plus, consultez Répliquer des données de Spanner vers Spanner Omni et Importer et exporter des données.
Principales fonctionnalités
Les sauvegardes Spanner Omni offrent une cohérence des données, une réplication externe résiliente et une expiration automatisée.
Cohérence des données : les sauvegardes d'une base de données Spanner Omni sont cohérentes en externe et en transaction au
versionTimede la sauvegarde.Réplication : les fichiers de sauvegarde sont stockés dans un système de stockage externe, en dehors du déploiement Spanner Omni.
Expiration automatique : toutes les sauvegardes ont une date d'expiration spécifiée par l'utilisateur qui détermine quand elles sont supprimées. Spanner Omni supprime les sauvegardes arrivées à expiration 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.
Stockage externe
Le stockage externe représente le stockage distant qui se trouve en dehors du déploiement Spanner Omni. Vous pouvez configurer Amazon Simple Storage Service (Amazon S3), Cloud Storage ou tout autre espace de stockage compatible avec Amazon S3 en tant qu'espace de stockage externe. Spanner Omni stocke les fichiers de sauvegarde dans cet espace de stockage externe.
Gestion du stockage externe
Gérez l'espace de stockage externe en créant, en supprimant et en listant les emplacements de stockage de vos sauvegardes.
Créer un espace de stockage externe
Pour créer un espace de stockage externe Amazon S3, exécutez la commande suivante :
spanner external-storages create EXTERNAL_STORAGE_ID \
--s3-bucket-name=BUCKET_NAME \
--s3-region=AWS_REGION \
--s3-assume-role-arn=ASSUME_ROLE_ARN
Créer un stockage externe Cloud Storage
Avant de configurer le stockage externe Cloud Storage, assurez-vous de disposer des éléments suivants :
- Un bucket Cloud Storage cible dans votre projet Google Cloud .
- Un compte de service Google Cloud disposant du rôle IAM (Identity and Access Management) Administrateur des objets de l'espace de stockage (
roles/storage.objectAdmin) sur le bucket cible. Pour en savoir plus, consultez Rôles IAM pour Cloud Storage. - Identifiants d'authentification configurés dans votre environnement Spanner Omni, tels qu'un fichier de clé de compte de service ou des identifiants échangés via la fédération d'identité de charge de travail. Pour en savoir plus sur l'authentification à partir d'environnements externes, consultez Configurer la fédération d'identité de charge de travail avec des VM AWS et Configurer la fédération d'identité de charge de travail avec Kubernetes.
Pour enregistrer votre bucket Cloud Storage en tant que stockage externe, exécutez la commande suivante :
spanner external-storages create EXTERNAL_STORAGE_ID \
--gcs-bucket-name=BUCKET_NAME
Remplacez les éléments suivants :
EXTERNAL_STORAGE_ID: identifiant unique de la configuration de stockage externe, par exemplegcp-gcs-backup-target.BUCKET_NAME: nom de votre bucket Cloud Storage cible.
Créer un stockage externe compatible avec Amazon S3
Pour créer un stockage externe compatible avec Amazon S3, exécutez la commande suivante :
spanner external-storages create EXTERNAL_STORAGE_ID \
--s3-compatible-bucket-name=BUCKET_NAME \
--s3-compatible-endpoint=ENDPOINT \
--s3-compatible-credential-file-path=FILE
Supprimer l'espace de stockage externe
Pour supprimer un espace de stockage externe, assurez-vous d'abord qu'aucune sauvegarde existante ou en cours n'est présente. Exécutez ensuite la commande suivante :
spanner external-storages delete EXTERNAL_STORAGE_ID
Décrire le stockage externe
Pour obtenir des informations sur l'espace de stockage externe, exécutez la commande suivante :
spanner external-storages describe EXTERNAL_STORAGE_ID
Lister l'espace de stockage externe
Pour obtenir la liste des espaces de stockage externes, exécutez la commande suivante :
spanner external-storages list
Descripteur de sauvegarde
Un descripteur de sauvegarde représente les métadonnées et les chemins d'accès aux fichiers de sauvegarde des sauvegardes terminées stockées dans un espace de stockage externe.
spanner external-storages backup-descriptors list EXTERNAL_STORAGE_ID
Informations sur la sauvegarde
Lorsque vous créez une sauvegarde, ses métadonnées sont stockées dans Spanner Omni et les fichiers de sauvegarde résident dans l'espace de stockage externe.
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.
Informations sur le schéma, y compris les noms de tables, 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 Omni n'inclut pas les informations suivantes :
Toute modification des données ou du schéma après le
versionTime.en raison des stratégies IAM existantes.
Enregistrements de données de flux de modifications. Bien que le schéma des flux de modifications soit stocké, les données des flux de modifications doivent être diffusées et consommées à peu près en même temps que les modifications qu'elles décrivent.
Pour garantir la cohérence externe de la sauvegarde, Spanner Omni é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.
Gestion des sauvegardes
Pour créer des sauvegardes, vous devez disposer des autorisations suivantes. Demandez à votre administrateur de vous accorder les rôles IAM suivants sur un déploiement :
| Action | Rôle IAM |
|---|---|
| Créer, afficher, mettre à jour et supprimer des sauvegardes | roles/spanner.backupAdmin |
| Créer et afficher des sauvegardes | roles/spanner.backupWriter |
Créer une sauvegarde
Créez une sauvegarde à la demande.
spanner backups create BACKUP_NAME \
--database=DATABASE_ID \
--retention-period=RETENTION_PERIOD \
--async
Supprimer une sauvegarde
Supprimez les métadonnées et les fichiers de sauvegarde.
spanner backups delete BACKUP_NAME
Décrire une sauvegarde
Récupérez des informations sur une sauvegarde.
spanner backups describe BACKUP_NAME
Répertorier des sauvegardes
Répertoriez les sauvegardes Spanner Omni existantes dans le déploiement.
spanner backups list
Mettre à jour l'expiration de la sauvegarde
Mettre à jour la date d'expiration d'une sauvegarde.
spanner backups update-metadata BACKUP_NAME \
--expiration-date=EXPIRATION_DATE
Importer une sauvegarde
Pour récupérer une base de données dans un autre déploiement Spanner Omni (par exemple, pour effectuer une récupération entre des déploiements Spanner Omni ou si vous supprimez le déploiement d'origine), vous pouvez importer des sauvegardes si les fichiers de sauvegarde restent dans un espace de stockage externe :
Créez un stockage externe dans le nouveau déploiement qui utilise le même bucket Amazon S3 ou bucket Cloud Storage que le déploiement d'origine, par exemple :
spanner external-storages create EXTERNAL_STORAGE_ID \ --gcs-bucket-name=BUCKET_NAMERépertoriez les descripteurs de sauvegarde dans l'espace de stockage externe :
spanner external-storages backup-descriptors list EXTERNAL_STORAGE_IDImportez les métadonnées de sauvegarde dans le nouveau déploiement :
spanner backups import BACKUP_NAME \ --external-storage=EXTERNAL_STORAGE_ID \ --backup-descriptor=BACKUP_DESCRIPTOR \ --retention-period=RETENTION_PERIODRemplacez les éléments suivants :
BACKUP_NAME: nom de la sauvegarde importée.EXTERNAL_STORAGE_ID: ID de votre configuration de stockage externe.BACKUP_DESCRIPTOR: ID du descripteur renvoyé à l'étape précédente.RETENTION_PERIOD: durée de conservation de la sauvegarde, par exemple24hou30d.
Après avoir importé les métadonnées de sauvegarde, vous pouvez restaurer la sauvegarde dans une nouvelle base de données du déploiement. Pour en savoir plus, consultez Restaurer une sauvegarde Spanner Omni.
Planifications de sauvegarde
Spanner Omni vous permet de planifier des sauvegardes complètes pour les bases de données. Vous pouvez spécifier la fréquence à laquelle Spanner Omni crée des sauvegardes dans la programmation.
Une planification de sauvegarde complète crée des sauvegardes toutes les 12 heures ou plus. Les sauvegardes démarrent dans un intervalle de 30 minutes autour de l'heure programmée. Vous pouvez définir jusqu'à quatre planifications de sauvegarde par base de données.
Gestion de la planification des sauvegardes
Pour créer et gérer des planifications de sauvegarde, vous devez disposer des autorisations suivantes. Demandez à votre administrateur de vous accorder les rôles IAM suivants sur le déploiement :
Créer, afficher, mettre à jour et supprimer des planifications de sauvegarde :
roles/spanner.backupAdminCréer et afficher des programmations de sauvegarde :
roles/spanner.backupWriter
Créer une programmation de sauvegarde
Créez une programmation de sauvegarde pour la base de données Spanner Omni.
spanner backup-schedules create SCHEDULE_ID \
--database=DATABASE_ID \
--retention-duration=RETENTION_DURATION \
--cron="CRONTAB_EXPRESSION"
Obtenir une programmation de sauvegarde
Obtenez des informations sur une programmation de sauvegarde spécifique.
spanner backup-schedules describe SCHEDULE_ID --database=DATABASE_ID
Répertorier les programmations de sauvegarde
Répertoriez toutes les programmations de sauvegarde pour une base de données donnée.
spanner backup-schedules list --database=DATABASE_ID
Mettre à jour une planification de sauvegarde
Mettre à jour les propriétés d'une programmation de sauvegarde existante.
spanner backup-schedules update SCHEDULE_ID \
--database=DATABASE_ID \
--retention-duration=RETENTION_DURATION \
--cron="CRONTAB_EXPRESSION"
Supprimer une planification de sauvegarde
Supprimez une planification de sauvegarde de la base de données.
spanner backup-schedules delete SCHEDULE_ID --database=DATABASE_ID
Définir une stratégie de contrôle des accès IAM
Définissez la stratégie IAM de contrôle des accès pour une programmation de sauvegarde.
spanner backup-schedules set-iam-policy SCHEDULE_ID \
--database=DATABASE_ID \
policy.json
Obtenir une stratégie IAM de contrôle des accès
Obtenez la stratégie de contrôle des accès IAM pour une programmation de sauvegarde.
spanner backup-schedules get-iam-policy SCHEDULE_ID --database=DATABASE_ID
Comparer l'espace de stockage de sauvegarde à l'espace de stockage de base de données
La taille de stockage d'une sauvegarde peut être inférieure ou supérieure à celle de la base de données source au moment de la création.
L'espace de stockage d'une sauvegarde peut être inférieur à celui de la base de données, car une sauvegarde ne contient qu'une seule version des données, tandis que la base de données active peut contenir plusieurs versions en raison des opérations en cours. Les différences de format et de compression des données peuvent également entraîner une taille de sauvegarde plus petite.
À l'inverse, l'espace de stockage d'une sauvegarde peut être supérieur à celui de la base de données, en fonction de l'état de la base de données et du moment où vous créez la sauvegarde.
Pour des raisons similaires, lorsque vous restaurez une base de données à partir d'une sauvegarde, son stockage peut être plus important que celui de la base de données. Cela peut se produire si un grand ensemble de données a été supprimé et compacté après la création de la sauvegarde. Par conséquent, la taille de la sauvegarde dépend du moment où elle a été créée et des opérations ultérieures sur la base de données.
Aucune formule ne permet de prédire la taille d'une sauvegarde par rapport à la base de données active. Pour une base de données avec un taux d'écriture élevé (une base de données active), la sauvegarde est probablement plus petite que la base de données active. Toutefois, dans certains cas, la taille de la sauvegarde peut être plus importante.