Gilt für die Cloud Firestore Standard- und Enterprise-Edition. |
Auf dieser Seite wird beschrieben, wie Sie die Funktion für geplante Back-ups von Cloud Firestore mit MongoDB-Kompatibilität verwenden. Mit Sicherungen können Sie Ihre Daten vor Datenbeschädigung auf Anwendungsebene oder vor versehentlichem Löschen von Daten schützen.
Mit Sicherungen können Sie Sicherungszeitpläne konfigurieren, um tägliche oder wöchentliche Sicherungen der angegebenen Datenbank zu erstellen. 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 TTL-Richtlinien (Time-to-Live) für Datenbanken. Eine Sicherung befindet sich am selben Speicherort wie die Quelldatenbank.
Sicherungen haben eine konfigurierbare Aufbewahrungsdauer und werden gespeichert, bis die Aufbewahrungsdauer abläuft oder Sie die Sicherung löschen. Wenn Sie die Quelldatenbank löschen, werden die zugehörigen Sicherungen nicht automatisch gelöscht.
In Cloud Firestore werden Metadaten zu Sicherungen und Sicherungszeitplänen für eine Datenbank gespeichert. Cloud Firestore behält diese Metadaten bei, bis alle Sicherungen für die Datenbank ablaufen oder gelöscht werden.
Das Erstellen oder Beibehalten von Sicherungen hat keine Auswirkungen auf die Leistung von Lese- oder Schreibvorgängen in Ihrer Live-Datenbank.
Kosten
Bei der Verwendung von Backups wird Ihnen Folgendes in Rechnung gestellt:
- Die von jeder Sicherung genutzte Speichermenge.
- Die Kosten für einen Wiederherstellungsvorgang richten sich nach der Größe der Sicherung.
Weitere Informationen und genaue Preise finden Sie auf der Preisseite.
Hinweis
Für diese Funktion ist der Blaze-Tarif erforderlich.Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen eine oder mehrere der folgenden IAM-Rollen (Identity and Access Management) 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-Datenbankroles/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
Die folgenden Beispiele zeigen, wie Sie einen Sicherungszeitplan einrichten. Für jede Datenbank können Sie bis zu einen täglichen und bis zu einen wöchentlichen Sicherungszeitplan konfigurieren. Sie können nicht mehrere wöchentliche Sicherungszeitpläne für verschiedene Wochentage konfigurieren.
Sie können die genaue Tageszeit der Sicherung nicht konfigurieren. Sicherungen werden jeden Tag zu unterschiedlichen Zeiten erstellt. Bei wöchentlichen Sicherungszeitplänen können Sie den Wochentag für die Sicherung konfigurieren.
Sicherungszeitplan erstellen
Verwenden Sie eines der folgenden Tools, um einen Sicherungszeitplan zu erstellen.
Täglichen Sicherungszeitplan erstellen
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten, je nachdem, ob ein Sicherungszeitplan vorhanden ist.
- Klicken Sie auf Bearbeiten, um die Einstellungen für die Notfallwiederherstellung zu bearbeiten.
- Wählen Sie das Kästchen Täglich aus, legen Sie den Aufbewahrungszeitraum fest und klicken Sie auf Speichern.
Firebase CLI
Verwenden Sie den Befehlfirebase firestore:databases:backups:schedules
, um einen Sicherungszeitplan für eine Datenbank zu erstellen.
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
'(default)'
für die Standarddatenbank fest. - RETENTION_PERIOD: Legen Sie diesen Wert auf bis zu 14 Wochen (
14w
) fest.
Terraform
Erstellen Sie einegoogle_firestore_backup_schedule
-Ressource, um einen täglichen Sicherungszeitplan zu erstellen.
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
'(default)'
für die Standarddatenbank fest.
Sie können auch eine Ressourcenreferenz für eine Terraform-Ressource vom Typ - RETENTION_PERIOD_SECONDS: Setzen Sie diesen Wert auf einen Wert in Sekunden, gefolgt von „s“. Der Höchstwert ist
8467200s
(14 Wochen).
google_firestore_database
verwenden.
Wöchentlichen Sicherungszeitplan erstellen
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten, je nachdem, ob ein Sicherungszeitplan vorhanden ist.
- Klicken Sie auf Bearbeiten, um die Einstellungen für die Notfallwiederherstellung zu bearbeiten.
- Wählen Sie das Kästchen Wöchentlich aus, legen Sie einen Sicherungstag und den Aufbewahrungszeitraum fest und klicken Sie dann auf Speichern.
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
'(default)'
für die Standarddatenbank fest. - RETENTION_PERIOD: Legen Sie diesen Wert auf 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
Erstellen Sie einegoogle_firestore_backup_schedule
-Ressource, um einen wöchentlichen Sicherungsplan zu erstellen.
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
'(default)'
für die Standarddatenbank fest.
Sie können auch eine Ressourcenreferenz für eine Terraform-Ressource vom Typ - RETENTION_PERIOD_SECONDS: Setzen Sie diesen Wert auf einen Wert in Sekunden, 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:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten, je nachdem, ob ein Sicherungszeitplan vorhanden ist.
- Die Seite Notfallwiederherstellung wird geöffnet. Auf dieser Seite werden Sicherungszeitpläne beschrieben und verfügbare Sicherungen aufgeführt.
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.
Sicherungszeitplan beschreiben
Verwenden Sie eine der folgenden Methoden, um Informationen zu einem Sicherungszeitplan abzurufen:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten, je nachdem, ob ein Sicherungszeitplan vorhanden ist.
- Die Seite Notfallwiederherstellung wird geöffnet. Auf dieser Seite werden Sicherungszeitpläne beschrieben und verfügbare Sicherungen aufgeführt.
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
'(default)'
für die Standarddatenbank fest. - BACKUP_SCHEDULE_ID: Die ID eines Sicherungszeitplans. Sie können die ID jedes Sicherungszeitplans aufrufen, wenn Sie alle Sicherungszeitpläne auflisten.
Sicherungszeitplan aktualisieren
Verwenden Sie eine der folgenden Methoden, um die Aufbewahrungsdauer eines Sicherungszeitplans zu aktualisieren:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten.
- Klicken Sie auf Bearbeiten, um die Einstellungen für die Notfallwiederherstellung zu bearbeiten.
- Bearbeiten Sie die Einstellungen für den Sicherungszeitplan und klicken Sie dann auf Speichern.
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 sehen, wenn Sie alle Sicherungszeitpläne auflisten.
- RETENTION_PERIOD: Legen Sie diesen Wert auf bis zu 14 Wochen (
14w
) fest.
Sie können den Aufbewahrungszeitraum eines Sicherungszeitplans aktualisieren, aber nicht die Häufigkeit. Wenn Sie einen Sicherungszeitplan mit einer anderen Wiederholung benötigen, löschen Sie den alten Sicherungszeitplan, falls 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:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten, je nachdem, ob ein Sicherungszeitplan vorhanden ist.
- Klicken Sie auf Bearbeiten, um die Einstellungen für die Notfallwiederherstellung zu bearbeiten.
- Bearbeiten Sie die Einstellungen für den Sicherungszeitplan und klicken Sie dann auf Speichern.
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 den Namen jedes Sicherungszeitplans sehen, wenn Sie alle Sicherungszeitpläne auflisten.
Hinweis: Wenn Sie einen Sicherungszeitplan löschen, werden die Sicherungen, die bereits mit diesem Zeitplan erstellt wurden, nicht gelöscht. Sie können warten, bis sie nach Ablauf des Aufbewahrungszeitraums ablaufen. Wenn Sie eine Sicherung manuell löschen möchten, folgen Sie dieser Anleitung.
Sicherungen verwalten
Sicherungen auflisten
Verwenden Sie eine der folgenden Methoden, um verfügbare Sicherungen aufzulisten:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten, je nachdem, ob ein Sicherungszeitplan vorhanden ist.
- Klicken Sie auf Bearbeiten, um die Einstellungen für die Notfallwiederherstellung zu bearbeiten.
- Bearbeiten Sie die Einstellungen für den Sicherungszeitplan und klicken Sie dann auf Speichern.
Firebase CLI
Führen Sie den Befehlfirebase firestore:backups:list
aus:
firebase firestore:backups:list
--location
, um nur die Sicherungen von einem bestimmten Standort aufzulisten:
firebase firestore:backups:list \ --location=LOCATION
LOCATION
durch den Namen eines Cloud Firestore-Standorts mit MongoDB-Kompatibilität.
Sicherung beschreiben
Verwenden Sie eine der folgenden Methoden, um Details zu einer Sicherung aufzurufen:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten, je nachdem, ob ein Sicherungszeitplan vorhanden ist.
- Die Seite Notfallwiederherstellung wird geöffnet. Auf dieser Seite werden Sicherungszeitpläne beschrieben und verfügbare Sicherungen aufgeführt.
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 den Namen jeder Sicherung sehen, wenn Sie alle Sicherungen auflisten.
Sicherung löschen
Sie haben folgende Möglichkeiten, ein Backup zu löschen:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten, je nachdem, ob ein Sicherungszeitplan vorhanden ist. Die Seite Notfallwiederherstellung wird geöffnet. Auf dieser Seite werden Sicherungszeitpläne beschrieben und verfügbare Sicherungen aufgeführt.
- Suchen Sie in der Tabelle Sicherungen die Zeile für eine Sicherung und klicken Sie in der Spalte Aktionen auf Mehr anzeigen( ). Klicken Sie auf Löschen.
- Bestätigen Sie die Aktion über das Textfeld und klicken Sie auf Löschen.
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 sehen, wenn Sie alle Sicherungen auflisten.
Daten aus einer Datenbank-Sicherung wiederherstellen
Bei einem Wiederherstellungsvorgang werden die Daten aus einer Sicherung in eine neue Cloud Firestore-Datenbank mit MongoDB-Kompatibilität geschrieben.
Verwenden Sie eine der folgenden Methoden, um einen Wiederherstellungsvorgang zu starten:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Suchen Sie in der Liste der Datenbanken nach der Zeile für die Datenbank. Klicken Sie in der Spalte Geplante Sicherungen auf Sicherungen ansehen oder Einstellungen bearbeiten, je nachdem, ob ein Sicherungszeitplan vorhanden ist. Die Seite Notfallwiederherstellung wird geöffnet. Auf dieser Seite werden Sicherungszeitpläne beschrieben und verfügbare Sicherungen aufgeführt.
- Suchen Sie in der Tabelle Back-ups nach der Zeile für ein Back-up und klicken Sie in der Spalte Aktionen auf Mehr anzeigen(Cloud Shell wiederherstellen. ). Klicken Sie auf Mit
-
Das Cloud Shell-Steuerfeld wird mit einem gcloud CLI-Befehl zum Wiederherstellen aus der ausgewählten Sicherung geöffnet. Ersetzen Sie ID_OF_NEW_DATABASE durch eine ID für die Datenbank und führen Sie den Befehl aus.
Wenn Sie den Befehl ausführen, wird eine Antwort mit weiteren Informationen zum Vorgang zurückgegeben. Die Datenbank wird bald in Ihrer Liste der Datenbanken angezeigt. Die Wiederherstellung dauert einige Zeit und muss abgeschlossen sein, bevor auf die Datenbank zugegriffen werden kann.
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 \ --tags=[KEY=VALUE]'
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Der Speicherort des Datenbank-Back-ups 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 jeder Sicherung anzeigen lassen.
- DATABASE_ID: Eine Datenbank-ID für die neue Datenbank. Sie können keine Datenbank-ID verwenden, die bereits verwendet wird.
- [KEY=VALUE]: Eine optionale Liste von KEY=VALUE-Tag-Paaren, die gebunden werden sollen. Beispiel:
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
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 die Komponente progressPercentage
, in der der bisherige geschätzte Fortschritt der Wiederherstellung angegeben ist, sowie operationState
, in der der Gesamtstatus der Wiederherstellung angegeben ist.
So rufen Sie diese Informationen noch einmal ab: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