| S'applique aux éditions Firestore Standard et Firestore Enterprise. |
Cette page explique comment utiliser la fonctionnalité de sauvegardes planifiées Cloud Firestore. Utilisez des sauvegardes pour protéger vos données contre la corruption des données au niveau de l'application ou contre la suppression accidentelle de données.
Les sauvegardes vous permettent de configurer des planifications de sauvegarde pour effectuer des sauvegardes quotidiennes ou hebdomadaires de la base de données spécifiée. Vous pouvez ensuite utiliser ces sauvegardes pour restaurer des données dans une nouvelle base de données.
À propos des sauvegardes
Une sauvegarde est une copie cohérente de la base de données à un moment précis. La sauvegarde contient toutes les données et configurations d'index à ce moment précis.
Une sauvegarde ne contient pas de règles de durée de vie de la base de données. Une sauvegarde réside au même emplacement que la base de données source.Les sauvegardes ont une période de conservation configurable. Elles sont stockées jusqu'à l'expiration de cette période ou jusqu'à ce que vous supprimiez la sauvegarde. La suppression de la base de données source n'entraîne pas automatiquement la suppression des sauvegardes associées.
Cloud Firestore stocke les métadonnées liées aux sauvegardes et aux planifications de sauvegarde associées à une base de données. Cloud Firestore conserve ces métadonnées jusqu'à ce que toutes les sauvegardes de la base de données expirent ou soient supprimées.
La création ou la conservation de sauvegardes n'affecte pas les performances des opérations de lecture ou d'écriture dans votre base de données active.
Coûts
Lorsque vous utilisez des sauvegardes, les éléments suivants vous sont facturés :
- L'espace de stockage utilisé par chaque sauvegarde.
- Pour une opération de restauration, vous êtes facturé en fonction de la taille de la sauvegarde.
Pour en savoir plus et connaître les tarifs exacts, consultez la page Tarifs.
Avant de commencer
Cette fonctionnalité nécessite le forfait Blaze.Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les sauvegardes et les planifications de sauvegarde, demandez à votre administrateur de vous accorder un ou plusieurs des rôles Identity and Access Management suivants :
roles/datastore.owner: accès complet à la base de données Cloud Firestoreroles/datastore.backupsAdmin: accès en lecture et en écriture aux sauvegardesroles/datastore.backupsViewer: accès en lecture aux sauvegardesroles/datastore.backupSchedulesAdmin: accès en lecture et en écriture aux planifications de sauvegarderoles/datastore.backupSchedulesViewer: accès en lecture aux planifications de sauvegarderoles/datastore.restoreAdmin: autorisations permettant de lancer des opérations de restauration
Créer et gérer des programmations de sauvegarde
Les exemples suivants montrent comment configurer une planification de sauvegarde. Pour chaque base de données, vous pouvez configurer jusqu'à une planification de sauvegarde quotidienne et jusqu'à une planification de sauvegarde hebdomadaire. Vous ne pouvez pas configurer plusieurs planifications de sauvegardes hebdomadaires pour différents jours de la semaine.
Vous ne pouvez pas configurer l'heure exacte de la sauvegarde. Les sauvegardes sont effectuées à des heures différentes chaque jour. Pour les programmations de sauvegarde hebdomadaires, vous pouvez configurer le jour de la semaine où la sauvegarde sera effectuée.
Créez un planning de sauvegardes
Utilisez l'un des outils suivants pour créer une programmation de sauvegarde.
Créer une planification des sauvegardes quotidiennes
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou Modifier les paramètres, selon qu'une planification de sauvegarde existe ou non.
- Cliquez sur Modifier pour modifier les paramètres de reprise après sinistre.
- Cochez la case Quotidien, définissez la durée de conservation, puis cliquez sur Enregistrer.
CLI Firebase
Pour créer une programmation de sauvegarde pour une base de données, utilisez la commandefirebase firestore:databases:backups:schedules:create.
Pour créer une planification de sauvegarde quotidienne, définissez l'option --recurrence sur DAILY :
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'DAILY' \ --retention RETENTION_PERIOD
Remplacez les éléments suivants :
- DATABASE_ID : ID de la base de données à sauvegarder. Définissez cette valeur sur
'(default)'pour la base de données par défaut. - RETENTION_PERIOD : définissez cette valeur sur 14 semaines maximum (
14w).
Terraform
Pour créer une planification de sauvegarde quotidienne, créez une ressourcegoogle_firestore_backup_schedule.
resource "google_firestore_backup_schedule" "daily-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS daily_recurrence {} }
Remplacez les éléments suivants :
- PROJECT_ID : ID du projet
- DATABASE_ID : ID de la base de données à sauvegarder. Définissez cette valeur sur
'(default)'pour la base de données par défaut.
Vous pouvez également utiliser une référence de ressource vers une ressource Terraform de type - RETENTION_PERIOD_SECONDS : définissez cette valeur en secondes, suivie de "s". La valeur maximale est de
8467200s(14 semaines).
google_firestore_database.
Créer une planification des sauvegardes hebdomadaires
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou Modifier les paramètres, selon qu'une planification de sauvegarde existe ou non.
- Cliquez sur Modifier pour modifier les paramètres de reprise après sinistre.
- Cochez la case Hebdomadaire, sélectionnez un jour de sauvegarde, définissez la durée de conservation, puis cliquez sur Enregistrer.
CLI Firebase
Pour créer une programmation de sauvegarde hebdomadaire, définissez l'option--recurrence sur WEEKLY et choisissez le --day-of-week :
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'WEEKLY' \ --retention RETENTION_PERIOD --day-of-week DAY
- DATABASE_ID : ID de la base de données à sauvegarder. Définissez cette valeur sur
'(default)'pour la base de données par défaut. - RETENTION_PERIOD : définissez cette valeur sur une durée maximale de 14 semaines (
14w). - DAY : jour de la semaine où la sauvegarde sera effectuée. Définissez cette option sur l'une des valeurs suivantes :
SUNDAYpour dimancheMONDAYpour lundiTUESDAYpour mardiWEDNESDAYpour mercrediTHURSDAYpour jeudiFRIDAYpour vendrediSATURDAYpour samedi
Terraform
Pour créer une planification de sauvegarde hebdomadaire, créez une ressourcegoogle_firestore_backup_schedule.
resource "google_firestore_backup_schedule" "weekly-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS weekly_recurrence { day = DAY } }
Remplacez les éléments suivants :
- PROJECT_ID : ID du projet
- DATABASE_ID : ID de la base de données à sauvegarder. Définissez cette valeur sur
'(default)'pour la base de données par défaut.
Vous pouvez également utiliser une référence de ressource vers une ressource Terraform de type - RETENTION_PERIOD_SECONDS : définissez cette valeur en secondes, suivie de "s". La valeur maximale est de
8467200s(14 semaines). - DAY : jour de la semaine où la sauvegarde sera effectuée. Définissez cette option sur l'une des valeurs suivantes :
SUNDAYpour dimancheMONDAYpour lundiTUESDAYpour mardiWEDNESDAYpour mercrediTHURSDAYpour jeudiFRIDAYpour vendrediSATURDAYpour samedi
google_firestore_database.
Répertorier les programmations de sauvegarde
Pour lister toutes les programmations de sauvegarde d'une base de données, utilisez l'une des méthodes suivantes :
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou Modifier les paramètres, selon qu'une planification de sauvegarde existe ou non.
- La page Reprise après sinistre s'ouvre. Cette page décrit les programmations de sauvegardes et liste les sauvegardes disponibles.
CLI Firebase
Exécutez la commandefirebase firestore:backups:schedules:list.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'
'(default)' pour la base de données par défaut.
Décrire la planification des sauvegardes
Pour récupérer des informations sur une programmation de sauvegarde, utilisez l'une des méthodes suivantes :
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou Modifier les paramètres, selon qu'une planification de sauvegarde existe ou non.
- La page Reprise après sinistre s'ouvre. Cette page décrit les programmations de sauvegardes et liste les sauvegardes disponibles.
gcloud
Exécutez la commandegcloud firestore backups schedules describe :
gcloud firestore backups schedules describe \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
- DATABASE_ID : ID de la base de données à sauvegarder. Définissez sur
'(default)'pour la base de données par défaut. - BACKUP_SCHEDULE_ID : ID d'une programmation de sauvegarde. Vous pouvez afficher l'ID de chaque planification de sauvegarde lorsque vous listez toutes les planifications de sauvegarde.
Mettre à jour une planification de sauvegarde
Pour mettre à jour la durée de conservation d'une programmation de sauvegarde, utilisez l'une des méthodes suivantes :
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou Modifier les paramètres.
- Cliquez sur Modifier pour modifier les paramètres de reprise après sinistre.
- Modifiez les paramètres de planification de la sauvegarde, puis cliquez sur Enregistrer.
CLI Firebase
Exécutez la commandefirebase firestore:backups:schedules:update :
firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIOD
- BACKUP_SCHEDULE : nom complet de la ressource d'une programmation de sauvegarde. Vous pouvez afficher le nom de chaque planification de sauvegarde lorsque vous répertoriez toutes les planifications de sauvegarde.
- RETENTION_PERIOD : définissez cette valeur sur 14 semaines maximum (
14w).
Vous pouvez modifier la durée de conservation d'une planification de sauvegarde, mais pas sa récurrence. Si vous avez besoin d'une programmation de sauvegarde avec une récurrence différente, supprimez l'ancienne programmation de sauvegarde si elle n'est plus nécessaire, puis créez-en une autre avec la récurrence souhaitée.
Supprimer une planification de sauvegarde
Pour supprimer une programmation de sauvegarde, utilisez l'une des méthodes suivantes :
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou Modifier les paramètres, selon qu'une planification de sauvegarde existe ou non.
- Cliquez sur Modifier pour modifier les paramètres de reprise après sinistre.
- Modifiez les paramètres de planification de la sauvegarde, puis cliquez sur Enregistrer.
CLI Firebase
Exécutez la commandefirebase firestore:backups:schedules:delete :
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULE
- BACKUP_SCHEDULE : nom complet de la ressource d'une programmation de sauvegarde. Vous pouvez afficher le nom de chaque planification de sauvegarde lorsque vous répertoriez toutes les planifications de sauvegarde.
Notez que la suppression d'une planification de sauvegarde ne supprime pas les sauvegardes déjà créées par cette planification. Vous pouvez attendre qu'elles expirent après leur période de conservation ou supprimer manuellement une sauvegarde (consultez Supprimer une sauvegarde).
Gérer les sauvegardes
Répertorier des sauvegardes
Pour lister les sauvegardes disponibles, utilisez l'une des méthodes suivantes :
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou sur Modifier les paramètres, selon qu'une planification de sauvegarde existe ou non.
- Cliquez sur Modifier pour modifier les paramètres de reprise après sinistre.
- Modifiez les paramètres de planification de la sauvegarde, puis cliquez sur Enregistrer.
CLI Firebase
Exécutez la commandefirebase firestore:backups:list :
firebase firestore:backups:list
--location :
firebase firestore:backups:list \ --location=LOCATION
LOCATION par le nom d'un emplacement Cloud Firestore.
Décrire une sauvegarde
Pour afficher les détails d'une sauvegarde, utilisez l'une des méthodes suivantes :
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou sur Modifier les paramètres, selon qu'une planification de sauvegarde existe ou non.
- La page Reprise après sinistre s'ouvre. Cette page décrit les programmations de sauvegardes et liste les sauvegardes disponibles.
CLI Firebase
Exécutez la commandefirebase firestore:backups:get :
firebase firestore:backups:get BACKUP
- BACKUP : nom complet de la ressource d'une sauvegarde. Vous pouvez afficher le nom de chaque sauvegarde lorsque vous listez toutes les sauvegardes.
Supprimer une sauvegarde
Pour supprimer une sauvegarde, utilisez l'une des méthodes suivantes.
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou Modifier les paramètres, selon qu'une planification de sauvegarde existe ou non. La page Reprise après sinistre s'ouvre. Cette page décrit les programmations de sauvegardes et liste les sauvegardes disponibles.
- Dans le tableau Sauvegardes, recherchez la ligne correspondant à une sauvegarde, puis dans la colonne Actions, cliquez sur Afficher plus(). Cliquez sur Supprimer.
- Confirmez l'action à l'aide du champ de texte, puis cliquez sur Supprimer.
CLI Firebase
Exécutez la commandefirebase firestore:backups:delete :
firebase firestore:backups:delete \ BACKUP
- BACKUP : nom complet de la ressource d'une sauvegarde. Vous pouvez afficher le nom de chaque sauvegarde lorsque vous listez toutes les sauvegardes.
Restaurer des données à partir d'une sauvegarde de base de données
Une opération de restauration écrit les données d'une sauvegarde dans une nouvelle base de données Cloud Firestore.
Pour lancer une opération de restauration, utilisez l'une des méthodes suivantes :
Console Google Cloud
Dans la console Google Cloud, accédez à la page Base de données.
- Dans la liste des bases de données, recherchez la ligne correspondant à la base de données. Dans la colonne Sauvegardes planifiées, cliquez sur Afficher les sauvegardes ou sur Modifier les paramètres, selon qu'une planification de sauvegarde existe ou non. La page Reprise après sinistre s'ouvre. Cette page décrit les programmations de sauvegardes et liste les sauvegardes disponibles.
- Dans le tableau Sauvegardes, recherchez la ligne correspondant à une sauvegarde, puis dans la colonne Actions, cliquez sur Afficher plus(). Cliquez sur Restaurer avec Cloud Shell.
-
Le panneau Cloud Shell s'ouvre avec une commande gcloud CLI pour restaurer à partir de la sauvegarde sélectionnée. Remplacez ID_OF_NEW_DATABASE par l'ID de la base de données, puis exécutez la commande.
L'exécution de la commande renvoie une réponse contenant plus d'informations sur l'opération. La base de données apparaît rapidement dans votre liste de bases de données. L'opération de restauration prend un certain temps et doit se terminer avant que la base de données ne soit accessible.
CLI Firebase
Exécutez la commandefirebase firestore:databases:restore :
firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'
- BACKUP : nom complet de la ressource d'une sauvegarde. Vous pouvez afficher le nom de chaque sauvegarde lorsque vous listez toutes les sauvegardes.
- DATABASE_ID : ID de la nouvelle base de données. Vous ne pouvez pas utiliser un ID de base de données déjà utilisé.
Limites
Une opération de restauration ne restaure pas les données de recherche App Engine ni les entités de blob d'une base de données (default). Ces données ne sont valides que pour la base de données (default) et ne seront pas utiles si vous effectuez une restauration à partir de (default) vers une base de données qui n'est pas compatible avec ces données. Elles sont donc exclues des sauvegardes.
Que faire après la restauration ?
Une fois la restauration terminée, procédez comme suit :
Vérifiez que les contrôles IAM appropriés sont appliqués à votre nouvelle base de données.
Si vous utilisiez des règles TTL, réappliquez-les à la nouvelle base de données. Les règles TTL ne sont pas incluses dans les sauvegardes et ne sont pas automatiquement réappliquées aux bases de données restaurées.