Les sauvegardes vous permettent de configurer des programmations 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 donné. La sauvegarde contient toutes les données et configurations d'index à ce moment-là. Une sauvegarde ne contient pas de règles de durée de vie de base de données. Une sauvegarde se trouve au même emplacement que la base de données source.
Les sauvegardes ont une durée de conservation configurable et sont stockées jusqu'à l'expiration de cette durée ou jusqu'à ce que vous les supprimiez. La suppression de la base de données source n'entraîne pas la suppression automatique des sauvegardes associées.
Firestore stocke les métadonnées liées aux sauvegardes et aux plannings de sauvegarde associés à une base de données. 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 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 :
- Quantité de stockage utilisée 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
Assurez-vous que la facturation est activée pour votre projet Google Cloud . Découvrez comment vérifier si la facturation est activée sur un projet.Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les sauvegardes et les plannings 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 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 plannings de sauvegarderoles/datastore.backupSchedulesViewer
: accès en lecture aux plannings de sauvegarderoles/datastore.restoreAdmin
: autorisations permettant de lancer des opérations de restauration
Créer et gérer des programmations de sauvegarde
Les exemples ci-dessous montrent comment configurer une planification de sauvegarde. Pour chaque base de données, vous pouvez configurer au maximum une programmation de sauvegarde quotidienne et une programmation de sauvegarde hebdomadaire. Vous ne pouvez pas configurer plusieurs programmations de sauvegarde 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éer une programmation de sauvegarde
Utilisez l'un des outils suivants pour créer une programmation de sauvegarde.
Créer une programmation de sauvegarde quotidienne
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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'un calendrier de sauvegarde existe ou non.
- Cliquez sur Modifier pour modifier les paramètres de reprise après sinistre.
- Cochez la case Tous les jours, définissez la période de conservation, puis cliquez sur Enregistrer.
gcloud
Pour créer une programmation de sauvegarde pour une base de données, utilisez la commandegcloud firestore backups schedules create
.
Pour créer une programmation de sauvegarde quotidienne, définissez l'indicateur --recurrence
sur daily
:
gcloud 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 la valeur sur
'(default)'
pour la base de données par défaut. - RETENTION_PERIOD : définissez cette valeur sur un maximum de 14 semaines (
14w
).
CLI Firebase
Pour créer une programmation de sauvegarde pour une base de données, utilisez la commande oufirebase firestore:databases:backups:schedules
.
Pour créer une programmation de sauvegarde quotidienne, définissez l'indicateur --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 la valeur sur
'(default)'
pour la base de données par défaut. - RETENTION_PERIOD : définissez cette valeur sur un maximum de 14 semaines (
14w
).
Terraform
Pour créer un programme de sauvegarde quotidien, 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 la valeur sur
'(default)'
pour la base de données par défaut.
Vous pouvez également utiliser une référence de ressource pour une ressource Terraform de type - RETENTION_PERIOD_SECONDS : définissez cette valeur sur un nombre de secondes, suivi de "s". La valeur maximale est de
8467200s
(14 semaines).
google_firestore_database
.
Créer une programmation de sauvegarde hebdomadaire
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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'un calendrier 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 période de conservation, puis cliquez sur Enregistrer.
gcloud
Pour créer une programmation de sauvegarde hebdomadaire, définissez l'option--recurrence
sur weekly
:
gcloud 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 la valeur sur
'(default)'
pour la base de données par défaut. - RETENTION_PERIOD : définissez cette valeur sur un maximum de 14 semaines (
14w
). - DAY : jour de la semaine où la sauvegarde sera effectuée. Définissez l'une des valeurs suivantes :
SUN
pour dimancheMON
pour lundiTUE
pour mardiWED
pour mercrediTHU
pour jeudiFRI
pour vendrediSAT
pour samedi
CLI Firebase
Pour créer une programmation de sauvegarde hebdomadaire, définissez l'option--recurrence
sur WEEKLY
:
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 la valeur sur
'(default)'
pour la base de données par défaut. - RETENTION_PERIOD : définissez cette valeur sur un maximum de 14 semaines (
14w
). - DAY : jour de la semaine où la sauvegarde sera effectuée. Définissez l'une des valeurs suivantes :
SUNDAY
pour dimancheMONDAY
pour lundiTUESDAY
pour mardiWEDNESDAY
pour mercrediTHURSDAY
pour jeudiFRIDAY
pour vendrediSATURDAY
pour samedi
Terraform
Pour créer un programme 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 la valeur sur
'(default)'
pour la base de données par défaut.
Vous pouvez également utiliser une référence de ressource pour une ressource Terraform de type - RETENTION_PERIOD_SECONDS : définissez cette valeur sur un nombre de secondes, suivi de "s". La valeur maximale est de
8467200s
(14 semaines). - DAY : jour de la semaine où la sauvegarde sera effectuée. Définissez l'une des valeurs suivantes :
SUNDAY
pour dimancheMONDAY
pour lundiTUESDAY
pour mardiWEDNESDAY
pour mercrediTHURSDAY
pour jeudiFRIDAY
pour vendrediSATURDAY
pour samedi
google_firestore_database
.
Lister les programmations de sauvegarde
Pour lister tous les plannings de sauvegarde d'une base de données, utilisez l'une des méthodes suivantes :
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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'un calendrier de sauvegarde existe ou non.
- La page Reprise après sinistre s'affiche. Cette page décrit les programmations de sauvegarde et liste les sauvegardes disponibles.
gcloud
Exécutez la commandegcloud firestore backups schedules list
.
gcloud firestore backups schedules list \ --database='DATABASE_ID'
'(default)'
pour la base de données par défaut.
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 :
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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'un calendrier de sauvegarde existe ou non.
- La page Reprise après sinistre s'affiche. Cette page décrit les programmations de sauvegarde 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 la valeur sur
'(default)'
pour la base de données par défaut. - BACKUP_SCHEDULE_ID : ID d'un programme de sauvegarde. Vous pouvez afficher l'ID de chaque programmation de sauvegarde lorsque vous listez toutes les programmations de sauvegarde.
Mettre à jour un planning de sauvegarde
Pour modifier la durée de conservation d'un programme de sauvegarde, utilisez l'une des méthodes suivantes :
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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 programmation de la sauvegarde, puis cliquez sur Enregistrer.
gcloud
Exécutez la commandegcloud firestore backups schedules update
:
gcloud firestore backups schedules update \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID \ --retention=RETENTION_PERIOD
- DATABASE_ID : ID de la base de données à sauvegarder. Définissez la valeur sur
'(default)'
pour la base de données par défaut. - BACKUP_SCHEDULE_ID : ID d'un programme de sauvegarde. Vous pouvez afficher l'ID de chaque programmation de sauvegarde lorsque vous listez toutes les programmations de sauvegarde.
- RETENTION_PERIOD : définissez cette valeur sur un maximum de 14 semaines (
14w
).
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'un calendrier de sauvegarde. Vous pouvez afficher le nom de chaque planification de sauvegarde lorsque vous listez toutes les planifications de sauvegarde.
- RETENTION_PERIOD : définissez cette valeur sur un maximum de 14 semaines (
14w
).
Vous pouvez modifier la période de conservation d'un programme 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 et créez-en une avec la récurrence souhaitée.
Supprimer une planification de sauvegarde
Pour supprimer une programmation de sauvegarde, utilisez l'une des méthodes suivantes :
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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'un calendrier de sauvegarde existe ou non.
- Cliquez sur Modifier pour modifier les paramètres de reprise après sinistre.
- Modifiez les paramètres de programmation de la sauvegarde, puis cliquez sur Enregistrer.
gcloud
Exécutez la commandegcloud firestore backups schedules delete
:
gcloud firestore backups schedules delete \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
- DATABASE_ID : ID de la base de données à sauvegarder. Définissez la valeur sur
'(default)'
pour la base de données par défaut. - BACKUP_SCHEDULE_ID : ID d'un programme de sauvegarde. Vous pouvez afficher l'ID de chaque programmation de sauvegarde lorsque vous listez toutes les programmations de sauvegarde.
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'un calendrier de sauvegarde. Vous pouvez afficher le nom de chaque planification de sauvegarde lorsque vous listez toutes les planifications de sauvegarde.
Notez que la suppression d'une planification de sauvegarde n'entraîne pas la suppression des sauvegardes déjà créées par cette planification. Vous pouvez attendre qu'elles expirent après leur période de conservation ou, pour 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 :
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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'un calendrier de sauvegarde existe ou non.
- Cliquez sur Modifier pour modifier les paramètres de reprise après sinistre.
- Modifiez les paramètres de programmation de la sauvegarde, puis cliquez sur Enregistrer.
gcloud
Exécutez la commandegcloud firestore backups list
:
gcloud firestore backups list \ --format="table(name, database, state)"
--format="table(name, database, state)"
met en forme le résultat dans un format plus lisible.
Pour n'afficher que les sauvegardes d'un emplacement spécifique, utilisez l'option --location
:
gcloud firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"
LOCATION
par le nom d'un emplacement en mode Datastore.
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 en mode Datastore.
Décrire une sauvegarde
Pour afficher des informations sur une sauvegarde, utilisez l'une des méthodes suivantes :
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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'un calendrier de sauvegarde existe ou non.
- La page Reprise après sinistre s'affiche. Cette page décrit les programmations de sauvegarde et liste les sauvegardes disponibles.
gcloud
Exécutez la commandegcloud firestore backups describe
:
gcloud firestore backups describe \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION : emplacement de la base de données.
- BACKUP_ID : ID d'une sauvegarde. Vous pouvez afficher l'ID de chaque sauvegarde lorsque vous listez toutes les sauvegardes.
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.
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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'un calendrier de sauvegarde existe ou non. La page Reprise après sinistre s'affiche. Cette page décrit les programmations de sauvegarde 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.
gcloud
Exécutez la commandegcloud firestore backups delete
:
gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION : emplacement de la base de données.
- BACKUP_ID : ID d'une sauvegarde. Vous pouvez afficher l'ID de chaque sauvegarde lorsque vous listez toutes les sauvegardes.
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 en mode Datastore.
Pour lancer une opération de restauration, utilisez l'une des méthodes suivantes :
ConsoleGoogle Cloud
Dans la console Google Cloud , accédez à la page Bases 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'un calendrier de sauvegarde existe ou non. La page Reprise après sinistre s'affiche. Cette page décrit les programmations de sauvegarde 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 permettant de restaurer la sauvegarde sélectionnée. Remplacez ID_OF_NEW_DATABASE par un ID pour 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 prendra un certain temps et doit être terminée avant que la base de données ne soit accessible.
gcloud
Exécutez la commandegcloud firestore databases restore
:
gcloud firestore databases restore \ --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \ --destination-database='DATABASE_ID \ --tags=[KEY=VALUE]'
- PROJECT_ID : ID de votre projet
- LOCATION : emplacement de la sauvegarde de la base de données et de la nouvelle base de données créée pour les données restaurées.
- BACKUP_ID : ID d'une sauvegarde. Vous pouvez afficher l'ID de chaque sauvegarde lorsque vous listez toutes les sauvegardes.
- DATABASE_ID : ID de base de données pour la nouvelle base de données. Vous ne pouvez pas utiliser un ID de base de données déjà utilisé.
- [KEY=VALUE]: liste facultative de paires clé/valeur de tags à associer. Par exemple :
- .
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
metadata
, name
et response
:
metadata: '@type': type.googleapis.com/google.firestore.admin.v1.RestoreDatabaseMetadata backup: projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID database: projects/PROJECT_ID/databases/DATABASE_ID operationState: PROCESSING progressPercentage: completedWork: '20' estimatedWork: '100' startTime: '2023-12-06T14:20:17.398325Z' name: projects/PROJECT_ID/databases/DATABASE_ID/operations/operation_uuid response: '@type': type.googleapis.com/google.firestore.admin.v1.Database createTime: '2023-12-06T14:20:17.398325Z' name: projects/PROJECT_ID/databases/DATABASE_ID ...
metadata
inclut un composant progressPercentage
, qui indique la progression estimée de la restauration jusqu'à présent, et un composant operationState
qui spécifie l'état général de la restauration.
Pour récupérer à nouveau ces informations, utilisez gcloud firestore operations list
:
gcloud firestore operations list --database=DATABASE_ID
name
de la sortie décrite ci-dessus, avec gcloud firestore operations describe
:
gcloud firestore operations describe OPERATION_NAME
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 base de données pour la nouvelle base de données. Vous ne pouvez pas utiliser un ID de base de données déjà utilisé.