Questa pagina descrive come utilizzare la funzionalità di Cloud Firestore backup pianificati. Utilizza i backup per proteggere i tuoi dati dai dati a livello di applicazione danneggiamento o eliminazione accidentale dei dati.
I backup ti consentono di configurare le pianificazioni dei backup in modo che vengano eseguite ogni giorno o settimana del database specificato. Puoi quindi utilizzare questi backup per ripristinare in un nuovo database.
Informazioni sui backup
Un backup è una copia coerente del database in un determinato momento. Il backup contiene tutte le configurazioni di dati e indici in quel punto nel tempo. Un backup non contiene criteri di durata del database. Un backup si trova nella stessa località del database di origine.
I backup hanno un periodo di conservazione configurabile e vengono archiviati fino al momento della conservazione o fino a quando non elimini il backup. L'eliminazione del database di origine non elimini automaticamente i backup correlati.
Cloud Firestore archivia i metadati relativi a backup e backup di pianificazioni relative a un database. Cloud Firestore conserva questi metadati finché tutti i backup del database scadono o vengono eliminati.
La creazione o la conservazione dei backup non influisce sulle prestazioni delle letture o scritture nel database in tempo reale.
Costi
Quando utilizzi i backup, ti viene addebitato quanto segue:
- La quantità di spazio di archiviazione utilizzata da ogni backup.
- Per un'operazione di ripristino, l'addebito avviene in base alle dimensioni del backup.
Per ulteriori dettagli e tariffe esatte, consulta la pagina Prezzi.
Prima di iniziare
Questa funzionalità richiede il piano tariffario Blaze.Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i backup e le pianificazioni dei backup, chiedi all'amministratore di concederti una o più delle seguenti funzionalità di Identity and Access Management ruoli:
roles/datastore.owner
: accesso completo al database Cloud FirestoreAnche i ruoli seguenti sono disponibili, ma non visibili nella console Google Cloud. Utilizzare Google Cloud CLI per assegnare questi ruoli:
roles/datastore.backupsAdmin
: accesso in lettura e scrittura ai backuproles/datastore.backupsViewer
: accesso in lettura ai backuproles/datastore.backupSchedulesAdmin
: accesso in lettura e scrittura alle pianificazioni dei backuproles/datastore.backupSchedulesViewer
: accesso in lettura alle pianificazioni dei backuproles/datastore.restoreAdmin
: autorizzazioni per avviare le operazioni di ripristino
Crea e gestisci le pianificazioni dei backup
Gli esempi riportati di seguito mostrano come configurare una pianificazione dei backup. Per ogni puoi configurare fino a una pianificazione giornaliera del backup e fino a un massimo di pianificazione del backup. Non puoi configurare più pianificazioni dei backup settimanali per in giorni diversi della settimana.
Non puoi configurare l'ora esatta del giorno del backup. I backup vengono eseguiti in momenti diversi ogni giorno. Per backup settimanale pianificazioni, puoi configurare il giorno della settimana in cui eseguire un backup.
Crea una pianificazione del backup
Per creare una pianificazione del backup per un database, utilizza il metodo
gcloud firestore backups schedules create
o il comando firebase firestore:databases:backups:schedules
.
Crea una pianificazione giornaliera del backup
gcloud
Per creare una pianificazione giornaliera del backup, imposta il flag--recurrence
su daily
:
gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=daily \ --retention=RETENTION_PERIOD
Sostituisci quanto segue:
- DATABASE_ID: l'ID del database di cui eseguire il backup. Imposta su
'(default)'
per il database predefinito. - RETENTION_PERIOD: imposta un valore fino a 14 settimane (
14w
).
interfaccia a riga di comando di Firebase
Per creare una pianificazione giornaliera del backup, imposta il flag--recurrence
su DAILY
:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'DAILY' \ --retention RETENTION_PERIOD
Sostituisci quanto segue:
- DATABASE_ID: l'ID del database di cui eseguire il backup. Imposta su
'(default)'
per il database predefinito. - RETENTION_PERIOD: imposta un valore fino a 14 settimane (
14w
).
Terraform
Per creare una pianificazione del backup giornaliera, crea una risorsagoogle_firestore_backup_schedule
.
resource "google_firestore_backup_schedule" "daily-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS daily_recurrence {} }
Sostituisci quanto segue:
- PROJECT_ID: l'ID del progetto.
- DATABASE_ID: l'ID del database di cui eseguire il backup. Imposta su
'(default)'
per il database predefinito.
Puoi anche utilizzare un riferimento delle risorse a un
Risorsa Terraform di tipo - RETENTION_PERIOD_SECONDS: imposta un valore in secondi, seguito da "s". Il valore massimo è
8467200s
(14 settimane).
google_firestore_database
.
Crea una pianificazione settimanale del backup
gcloud
Per creare una pianificazione del backup settimanale, imposta il flag--recurrence
su weekly
:
gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=weekly \ --retention=RETENTION_PERIOD \ --day-of-week=DAY
- DATABASE_ID: l'ID del database di cui eseguire il backup. Imposta su
'(default)'
per il database predefinito. - RETENTION_PERIOD: imposta un valore fino a 14 settimane (
14w
). - DAY: il giorno della settimana in cui eseguire il backup. Imposta su
uno dei seguenti:
SUN
per domenicaMON
per lunedìTUE
per martedìWED
per mercoledìTHU
per giovedìFRI
per venerdìSAT
per sabato
interfaccia a riga di comando di Firebase
Per creare una pianificazione settimanale del backup, imposta il flag--recurrence
su WEEKLY
:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'WEEKLY' \ --retention RETENTION_PERIOD --day-of-week DAY
- DATABASE_ID: l'ID del database di cui eseguire il backup. Imposta su
'(default)'
per il database predefinito. - RETENTION_PERIOD: imposta un valore massimo di 14 settimane (
14w
). - DAY: il giorno della settimana in cui eseguire il backup. Imposta su
uno dei seguenti:
SUNDAY
per domenicaMONDAY
per lunedìTUESDAY
per martedìWEDNESDAY
per mercoledìTHURSDAY
per giovedìFRIDAY
per venerdìSATURDAY
per sabato
Terraform
Per creare una pianificazione del backup settimanale, crea una risorsagoogle_firestore_backup_schedule
.
resource "google_firestore_backup_schedule" "weekly-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS weekly_recurrence { day = DAY } }
Sostituisci quanto segue:
- PROJECT_ID: l'ID del progetto.
- DATABASE_ID: l'ID del database di cui eseguire il backup. Imposta su
'(default)'
per il database predefinito.
Puoi anche utilizzare un riferimento delle risorse a un
Risorsa Terraform di tipo - RETENTION_PERIOD_SECONDS: imposta un valore in secondi, seguito da "s". Il valore massimo è
8467200s
(14 settimane). - DAY: il giorno della settimana in cui eseguire il backup. Imposta su
uno dei seguenti:
SUNDAY
per domenicaMONDAY
per lunedìTUESDAY
per martedìWEDNESDAY
per mercoledìTHURSDAY
per giovedìFRIDAY
per venerdìSATURDAY
per sabato
google_firestore_database
.
Elenca pianificazioni backup
Per elencare tutte le pianificazioni dei backup per un database, utilizza uno dei seguenti metodi:
gcloud
Utilizza il comandogcloud firestore backups schedules list
.
gcloud firestore backups schedules list \ --database='DATABASE_ID'
'(default)'
per il database predefinito.
interfaccia a riga di comando di Firebase
Utilizza il comandofirebase firestore:backups:schedules:list
.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'
'(default)'
per il database predefinito.
Descrivi la pianificazione del backup
Per recuperare le informazioni su una pianificazione del backup, utilizza uno dei seguenti metodi:
gcloud
Utilizza la Comandogcloud firestore backups schedules describe
:
gcloud firestore backups schedules describe \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
- DATABASE_ID: l'ID del database di cui eseguire il backup. Imposta su
'(default)'
per il database predefinito. - BACKUP_SCHEDULE_ID: l'ID di una pianificazione del backup. Puoi visualizzare l'ID di ogni pianificazione dei backup quando elenchi tutte le pianificazioni dei backup.
Aggiornare una pianificazione dei backup
Per aggiornare il periodo di conservazione di una pianificazione di backup, utilizza uno dei seguenti metodi:
gcloud
Utilizza il comandogcloud firestore backups schedules update
:
gcloud firestore backups schedules update \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID \ --retention=RETENTION_PERIOD
- DATABASE_ID: l'ID del database di cui eseguire il backup. Imposta su
'(default)'
per il database predefinito. - BACKUP_SCHEDULE_ID: l'ID di una pianificazione del backup. Tu puoi visualizzare l'ID di ogni pianificazione del backup quando elencare tutte le pianificazioni dei backup.
- RETENTION_PERIOD: imposta un valore fino a 14 settimane (
14w
).
interfaccia a riga di comando di Firebase
Usa il comandofirebase firestore:backups:schedules:update
:
firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIOD
- BACKUP_SCHEDULE: il nome completo della risorsa di una pianificazione di backup. Tu puoi visualizzare il nome di ogni pianificazione del backup quando elencare tutte le pianificazioni dei backup.
- RETENTION_PERIOD: imposta un valore fino a 14 settimane (
14w
).
Puoi aggiornare il periodo di conservazione di una pianificazione di backup, ma non puoi aggiornarne la ricorrenza. Se hai bisogno di una pianificazione del backup con una ricorrenza diversa, elimina la pianificazione del backup precedente se non è più necessaria e crea una nuova pianificazione del backup con la ricorrenza desiderata.
Elimina una pianificazione del backup
Per eliminare una pianificazione dei backup, utilizza uno dei seguenti metodi:
gcloud
Utilizza il comandogcloud firestore backups schedules delete
:
gcloud firestore backups schedules delete \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
- DATABASE_ID: l'ID del database di cui eseguire il backup. Imposta su
'(default)'
per il database predefinito. - BACKUP_SCHEDULE_ID: l'ID di una pianificazione del backup. Tu puoi visualizzare l'ID di ogni pianificazione del backup quando elencare tutte le pianificazioni dei backup.
interfaccia a riga di comando di Firebase
Usa il comandofirebase firestore:backups:schedules:delete
:
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULE
- BACKUP_SCHEDULE: il nome completo della risorsa di una pianificazione di backup. Tu puoi visualizzare il nome di ogni pianificazione del backup quando elencare tutte le pianificazioni dei backup.
Tieni presente che l'eliminazione di una pianificazione dei backup non eliminerà i backup già creati questa pianificazione. Puoi attendere la scadenza del periodo di conservazione oppure Per eliminare manualmente un backup, consulta l'articolo Eliminare un backup.
Gestisci backup
Elenco dei backup
Per elencare i backup disponibili, utilizza uno dei seguenti metodi:
gcloud
Utilizza il comandogcloud firestore backups list
:
gcloud firestore backups list \ --format="table(name, database, state)"
--format="table(name, database, state)"
formatta l'output in un
formato più leggibile.
Per elencare solo i backup da una posizione specifica, utilizza il flag --location
:
gcloud firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"
LOCATION
con il nome di un Cloud Firestore
in ogni località.
interfaccia a riga di comando di Firebase
Utilizza il comandofirebase firestore:backups:list
:
firebase firestore:backups:list
--location
:
firebase firestore:backups:list \ --location=LOCATION
LOCATION
con il nome di una località Cloud Firestore.
Descrivi un backup
Per visualizzare i dettagli di un backup, utilizza uno dei seguenti metodi:
gcloud
Utilizza il comandogcloud firestore backups describe
:
gcloud firestore backups describe \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION: la posizione del database.
- BACKUP_ID: l'ID di un backup. Tu Puoi visualizzare l'ID di ogni backup quando elenchi tutti i backup.
interfaccia a riga di comando di Firebase
Usa il comandofirebase firestore:backups:get
:
firebase firestore:backups:get BACKUP
- BACKUP: il nome completo della risorsa di un backup. Puoi visualizzare il nome di ogni backup quando elenchi tutti i backup.
Elimina backup
gcloud
Utilizza il comandogcloud firestore backups delete
:
gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION: la posizione del database.
- BACKUP_ID: l'ID di un backup. Tu Puoi visualizzare l'ID di ogni backup quando elenchi tutti i backup.
interfaccia a riga di comando di Firebase
Usa il comandofirebase firestore:backups:delete
:
firebase firestore:backups:delete \ BACKUP
- BACKUP: il nome completo della risorsa di un backup. Puoi visualizzare il nome di ogni backup quando elenchi tutti i backup.
Ripristinare i dati da un backup del database
Un'operazione di ripristino scrive i dati di un backup in un nuovo database Cloud Firestore.
Per avviare un'operazione di ripristino, utilizza uno dei seguenti metodi:
gcloud
Utilizza il comandogcloud firestore databases restore
:
gcloud firestore databases restore \ --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \ --destination-database='DATABASE_ID'
- PROJECT_ID: l'ID progetto.
- LOCATION: la località del backup del database e percorso del nuovo database creato per i dati ripristinati.
- BACKUP_ID: l'ID di un backup. Puoi visualizzare l'ID di ogni backup quando elenchi tutti i backup.
- DATABASE_ID: un ID database per il nuovo database. Non puoi utilizzare un ID database già in uso.
metadata
, name
e 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
include un componente progressPercentage
, che indica in dettaglio l'avanzamento stimato del ripristino fino ad ora, e un operationState
che specifica lo stato generale del ripristino.
Per recuperare queste informazioni, utilizza gcloud firestore operations list
:
gcloud firestore operations list --database=DATABASE_ID
name
dall'output descritto sopra, con gcloud firestore operations describe
:
gcloud firestore operations describe OPERATION_NAME
interfaccia a riga di comando di Firebase
Usa il comandofirebase firestore:databases:restore
:
firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'
- BACKUP: il nome completo della risorsa di un backup. Puoi visualizzare il nome di ogni backup quando elenchi tutti i backup.
- DATABASE_ID: un ID database per il nuovo per configurare un database. Non puoi utilizzare un ID database già in uso.