Auf dieser Seite wird beschrieben, wie Sie die Funktion für geplante Sicherungen von Cloud Firestore verwenden. Mit Sicherungen schützen Sie Ihre Daten vor Datenbeschädigung auf Anwendungsebene oder vor versehentlichem Löschen von Daten.
Mit Sicherungen können Sie Zeitpläne für die tägliche oder wöchentliche Sicherung der angegebenen Datenbank konfigurieren. Sie können diese Sicherungen dann verwenden, um Daten in einer neuen Datenbank wiederherzustellen.
Informationen zu Sicherungen
Eine Sicherung ist eine konsistente Kopie der Datenbank zu einem bestimmten Zeitpunkt. Die Sicherung enthält alle Daten und Indexkonfigurationen zu diesem Zeitpunkt. Eine Sicherung enthält keine Datenbank-Gültigkeitsdauer-Richtlinien. Eine Sicherung befindet sich am selben Speicherort wie die Quelldatenbank.
Sicherungen haben eine konfigurierbare Aufbewahrungsdauer und werden gespeichert, bis diese abgelaufen ist oder Sie die Sicherung löschen. Wenn Sie die Quelldatenbank löschen, werden die zugehörigen Sicherungen nicht automatisch gelöscht.
Cloud Firestore speichert Metadaten zu Sicherungen und Sicherungsplänen, die sich auf eine Datenbank beziehen. Cloud Firestore behält diese Metadaten so lange bei, bis alle Sicherungen für die Datenbank ablaufen oder gelöscht werden.
Das Erstellen oder Aufbewahren von Sicherungen wirkt sich nicht auf die Leistung von Lese- oder Schreibvorgängen in Ihrer Live-Datenbank aus.
Kosten
Bei der Nutzung von Back-ups wird Ihnen Folgendes in Rechnung gestellt:
- Der von jeder Sicherung verwendete Speicherplatz.
- Für eine Wiederherstellung wird Ihnen der Speicherplatz in Rechnung gestellt, der durch die Sicherung belegt wird.
Weitere Einzelheiten und die genauen Preise finden Sie auf der Seite Preise.
Hinweis
Für diese Funktion ist der Blaze-Tarif erforderlich.Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen eine oder mehrere der folgenden Rollen für die Identitäts- und Zugriffsverwaltung zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Sicherungen und Sicherungszeitplänen benötigen:
roles/datastore.owner
: Vollständiger Zugriff auf die Cloud Firestore-DatenbankDie folgenden Rollen sind ebenfalls verfügbar, aber nicht in der Google Cloud Console sichtbar. Verwenden Sie die Google Cloud CLI, um diese Rollen zuzuweisen:
roles/datastore.backupsAdmin
: Lese- und Schreibzugriff auf Sicherungenroles/datastore.backupsViewer
: Lesezugriff auf Sicherungenroles/datastore.backupSchedulesAdmin
: Lese- und Schreibzugriff auf Sicherungszeitpläneroles/datastore.backupSchedulesViewer
: Lesezugriff auf Sicherungszeitpläneroles/datastore.restoreAdmin
: Berechtigungen zum Starten von Wiederherstellungsvorgängen
Sicherungszeitpläne erstellen und verwalten
In den folgenden Beispielen wird gezeigt, wie Sie einen Sicherungszeitplan einrichten. Für jede Datenbank können Sie einen täglichen und einen wöchentlichen Sicherungszeitplan konfigurieren. Sie können nicht mehrere Zeitpläne für wöchentliche Sicherungen für verschiedene Wochentage konfigurieren.
Sie können die genaue Uhrzeit der Sicherung nicht konfigurieren. Die Sicherungen werden jeden Tag zu unterschiedlichen Zeiten erstellt. Bei wöchentlichen Sicherungsplänen können Sie den Wochentag für die Erstellung einer Sicherung konfigurieren.
Sicherungszeitplan erstellen
Verwenden Sie den Befehl gcloud firestore backups schedules create
oder firebase firestore:databases:backups:schedules
, um einen Sicherungszeitplan für eine Datenbank zu erstellen.
Täglichen Sicherungszeitplan erstellen
gcloud
Wenn Sie einen täglichen Sicherungszeitplan erstellen möchten, setzen Sie das Flag--recurrence
auf daily
:
gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=daily \ --retention=RETENTION_PERIOD
Ersetzen Sie Folgendes:
- DATABASE_ID: Die ID der zu sichernden Datenbank. Legen Sie für die Standarddatenbank
'(default)'
fest. - RETENTION_PERIOD: Legen Sie einen Wert von bis zu 14 Wochen (
14w
) fest.
Firebase CLI
Wenn Sie einen täglichen Sicherungszeitplan erstellen möchten, setzen Sie das Flag--recurrence
auf DAILY
:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'DAILY' \ --retention RETENTION_PERIOD
Ersetzen Sie Folgendes:
- DATABASE_ID: Die ID der zu sichernden Datenbank. Legen Sie für die Standarddatenbank
'(default)'
fest. - RETENTION_PERIOD: Legen Sie dafür einen Wert von bis zu 14 Wochen (
14w
) fest.
Terraform
Wenn Sie einen Zeitplan für die tägliche Sicherung erstellen möchten, erstellen Sie einegoogle_firestore_backup_schedule
-Ressource.
resource "google_firestore_backup_schedule" "daily-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS daily_recurrence {} }
Ersetzen Sie Folgendes:
- PROJECT_ID: ID des Projekts
- DATABASE_ID: Die ID der zu sichernden Datenbank. Legen Sie als Standarddatenbank
'(default)'
fest.
Sie können auch eine Ressourcenreferenz auf eine Terraform-Ressource vom Typ - RETENTION_PERIOD_SECONDS: Geben Sie hier einen Wert in Sekunden ein, gefolgt von „s“. Der Höchstwert ist
8467200s
(14 Wochen).
google_firestore_database
verwenden.
Wochenplan für Sicherungen erstellen
gcloud
Wenn Sie einen wöchentlichen Sicherungszeitplan erstellen möchten, setzen Sie das Flag--recurrence
auf weekly
:
gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=weekly \ --retention=RETENTION_PERIOD \ --day-of-week=DAY
- DATABASE_ID: Die ID der zu sichernden Datenbank. Legen Sie für die Standarddatenbank
'(default)'
fest. - RETENTION_PERIOD: Legen Sie einen Wert von bis zu 14 Wochen (
14w
) fest. - DAY: Der Wochentag, an dem die Sicherung erstellt wird. Legen Sie einen der folgenden Werte fest:
SUN
für SonntagMON
für MontagTUE
für DienstagWED
für MittwochTHU
für DonnerstagFRI
für FreitagSAT
für Samstag
Firebase CLI
Wenn Sie einen wöchentlichen Sicherungszeitplan erstellen möchten, setzen Sie das Flag--recurrence
auf WEEKLY
:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'WEEKLY' \ --retention RETENTION_PERIOD --day-of-week DAY
- DATABASE_ID: Die ID der zu sichernden Datenbank. Legen Sie für die Standarddatenbank
'(default)'
fest. - RETENTION_PERIOD: Legen Sie einen Wert von bis zu 14 Wochen (
14w
) fest. - DAY: Der Wochentag, an dem die Sicherung erstellt werden soll. Legen Sie einen der folgenden Werte fest:
SUNDAY
für SonntagMONDAY
für MontagTUESDAY
für DienstagWEDNESDAY
für MittwochTHURSDAY
für DonnerstagFRIDAY
für FreitagSATURDAY
für Samstag
Terraform
Wenn Sie einen wöchentlichen Sicherungszeitplan erstellen möchten, erstellen Sie einegoogle_firestore_backup_schedule
-Ressource.
resource "google_firestore_backup_schedule" "weekly-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS weekly_recurrence { day = DAY } }
Ersetzen Sie Folgendes:
- PROJECT_ID: ID des Projekts
- DATABASE_ID: Die ID der zu sichernden Datenbank. Legen Sie für die Standarddatenbank
'(default)'
fest.
Sie können auch eine Ressourcenreferenz auf eine Terraform-Ressource vom Typ - RETENTION_PERIOD_SECONDS: Geben Sie hier einen Wert in Sekunden ein, gefolgt von „s“. Der Höchstwert ist
8467200s
(14 Wochen). - DAY: Der Wochentag, an dem die Sicherung erstellt werden soll. Legen Sie einen der folgenden Werte fest:
SUNDAY
für SonntagMONDAY
für MontagTUESDAY
für DienstagWEDNESDAY
für MittwochTHURSDAY
für DonnerstagFRIDAY
für FreitagSATURDAY
für Samstag
google_firestore_database
verwenden.
Sicherungszeitpläne auflisten
Verwenden Sie eine der folgenden Methoden, um alle Sicherungszeitpläne für eine Datenbank aufzulisten:
gcloud
Führen Sie den Befehlgcloud firestore backups schedules list
aus.
gcloud firestore backups schedules list \ --database='DATABASE_ID'
'(default)'
für die Standarddatenbank.
Firebase CLI
Führen Sie den Befehlfirebase firestore:backups:schedules:list
aus.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'
'(default)'
für die Standarddatenbank.
Zeitplan für die Sicherung beschreiben
Sie haben folgende Möglichkeiten, Informationen zu einem Sicherungszeitplan abzurufen:
gcloud
Führen Sie den Befehlgcloud firestore backups schedules describe
aus:
gcloud firestore backups schedules describe \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
- DATABASE_ID: Die ID der zu sichernden Datenbank. Legen Sie für die Standarddatenbank
'(default)'
fest. - BACKUP_SCHEDULE_ID: Die ID eines Sicherungszeitplans. Sie können die ID jedes Sicherungszeitplans aufrufen, wenn Sie alle Sicherungszeitpläne auflisten.
Zeitplan für die Sicherung aktualisieren
So aktualisieren Sie die Aufbewahrungsdauer eines Sicherungszeitplans:
gcloud
Führen Sie den Befehlgcloud firestore backups schedules update
aus:
gcloud firestore backups schedules update \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID \ --retention=RETENTION_PERIOD
- DATABASE_ID: Die ID der zu sichernden Datenbank. Legen Sie als Standarddatenbank
'(default)'
fest. - BACKUP_SCHEDULE_ID: Die ID eines Sicherungszeitplans. Sie können die ID jedes Sicherungszeitplans aufrufen, wenn Sie alle Sicherungszeitpläne auflisten.
- RETENTION_PERIOD: Legen Sie einen Wert von bis zu 14 Wochen (
14w
) fest.
Firebase CLI
Führen Sie den Befehlfirebase firestore:backups:schedules:update
aus:
firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIOD
- BACKUP_SCHEDULE: Der vollständige Ressourcenname eines Sicherungszeitplans. Sie können den Namen jedes Sicherungszeitplans aufrufen, wenn Sie alle Sicherungspläne auflisten.
- RETENTION_PERIOD: Legen Sie dafür einen Wert von bis zu 14 Wochen (
14w
) fest.
Sie können die Aufbewahrungsdauer eines Sicherungszeitplans aktualisieren, aber nicht die Wiederholung. Wenn Sie einen Sicherungszeitplan mit einer anderen Wiederholung benötigen, löschen Sie den alten Sicherungszeitplan, wenn er nicht mehr erforderlich ist, und erstellen Sie einen neuen Sicherungszeitplan mit der gewünschten Wiederholung.
Sicherungszeitplan löschen
Sie haben folgende Möglichkeiten, einen Sicherungszeitplan zu löschen:
gcloud
Führen Sie den Befehlgcloud firestore backups schedules delete
aus:
gcloud firestore backups schedules delete \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
- DATABASE_ID: Die ID der zu sichernden Datenbank. Legen Sie für die Standarddatenbank
'(default)'
fest. - BACKUP_SCHEDULE_ID: Die ID eines Sicherungszeitplans. Sie können die ID jedes Sicherungszeitplans aufrufen, wenn Sie alle Sicherungszeitpläne auflisten.
Firebase CLI
Führen Sie den Befehlfirebase firestore:backups:schedules:delete
aus:
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULE
- BACKUP_SCHEDULE: Der vollständige Ressourcenname eines Sicherungszeitplans. Sie können sich den Namen jedes Sicherungszeitplans ansehen, indem Sie alle Sicherungszeitpläne auflisten.
Durch das Löschen eines Sicherungszeitplans werden keine Sicherungen gelöscht, die bereits durch diesen Zeitplan erstellt wurden. Sie können warten, bis sie nach Ablauf der Aufbewahrungsdauer ablaufen, oder eine Sicherung manuell löschen. Weitere Informationen finden Sie unter Sicherung löschen.
Sicherungen verwalten
Sicherungen auflisten
Sie haben folgende Möglichkeiten, verfügbare Sicherungen aufzulisten:
gcloud
Führen Sie den Befehlgcloud firestore backups list
aus:
gcloud firestore backups list \ --format="table(name, database, state)"
--format="table(name, database, state)"
wird die Ausgabe in einem leichter lesbaren Format formatiert.
Wenn Sie nur die Sicherungen an einem bestimmten Speicherort auflisten möchten, verwenden Sie das Flag --location
:
gcloud firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"
LOCATION
durch den Namen eines Cloud Firestore-Standorts.
Firebase CLI
Führen Sie den Befehlfirebase firestore:backups:list
aus:
firebase firestore:backups:list
--location
:
firebase firestore:backups:list \ --location=LOCATION
LOCATION
durch den Namen eines Cloud Firestore-Standorts.
Sicherung beschreiben
Sie haben folgende Möglichkeiten, Details zu einer Sicherung aufzurufen:
gcloud
Führen Sie den Befehlgcloud firestore backups describe
aus:
gcloud firestore backups describe \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION: Der Speicherort der Datenbank.
- BACKUP_ID: Die ID einer Sicherung. Sie können die ID jeder Sicherung aufrufen, wenn Sie alle Sicherungen auflisten.
Firebase CLI
Führen Sie den Befehlfirebase firestore:backups:get
aus:
firebase firestore:backups:get BACKUP
- BACKUP: Der vollständige Ressourcenname einer Sicherung. Sie können sich den Namen der einzelnen Sicherungen ansehen, wenn Sie alle Sicherungen auflisten.
Sicherung löschen
gcloud
Führen Sie den Befehlgcloud firestore backups delete
aus:
gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION: Der Speicherort der Datenbank.
- BACKUP_ID: Die ID einer Sicherung. Sie können die ID der einzelnen Sicherungen aufrufen, wenn Sie alle Sicherungen auflisten.
Firebase CLI
Führen Sie den Befehlfirebase firestore:backups:delete
aus:
firebase firestore:backups:delete \ BACKUP
- BACKUP: Der vollständige Ressourcenname einer Sicherung. Sie können den Namen jeder Sicherung aufrufen, indem Sie alle Sicherungen auflisten.
Daten aus einer Datenbanksicherung wiederherstellen
Bei einem Wiederherstellungsvorgang werden die Daten aus einer Sicherung in eine neue Cloud Firestore-Datenbank geschrieben.
Verwenden Sie eine der folgenden Methoden, um einen Wiederherstellungsvorgang zu starten:
gcloud
Führen Sie den Befehlgcloud firestore databases restore
aus:
gcloud firestore databases restore \ --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \ --destination-database='DATABASE_ID'
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Der Speicherort der Datenbanksicherung und der Speicherort der neuen Datenbank, die für die wiederhergestellten Daten erstellt wurde.
- BACKUP_ID: Die ID einer Sicherung. Sie können die ID der einzelnen Sicherungen sehen, wenn Sie alle Sicherungen auflisten.
- DATABASE_ID: Eine Datenbank-ID für die neue Datenbank. Sie können keine Datenbank-ID verwenden, die bereits verwendet wird.
metadata
, name
und 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
enthält eine progressPercentage
-Komponente, die den geschätzten Fortschritt der Wiederherstellung bis zum aktuellen Zeitpunkt angibt, und eine operationState
, die den Gesamtstatus der Wiederherstellung angibt.
Wenn Sie diese Informationen noch einmal abrufen möchten, verwenden Sie gcloud firestore operations list
:
gcloud firestore operations list --database=DATABASE_ID
name
aus der oben beschriebenen Ausgabe mit gcloud firestore operations describe
:
gcloud firestore operations describe OPERATION_NAME
Firebase CLI
Führen Sie den Befehlfirebase firestore:databases:restore
aus:
firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'
- BACKUP: Der vollständige Ressourcenname einer Sicherung. Sie können sich den Namen der einzelnen Sicherungen ansehen, wenn Sie alle Sicherungen auflisten.
- DATABASE_ID: Eine Datenbank-ID für die neue Datenbank. Sie können keine Datenbank-ID verwenden, die bereits verwendet wird.