Daten sichern und wiederherstellen

Auf dieser Seite wird beschrieben, wie Sie die Funktion für geplante Backups von Cloud Firestore verwenden. Verwenden Sie Sicherungen, um Ihre Daten vor Datenbeschädigung auf Anwendungsebene oder vor versehentlichem Datenlöschen zu schützen.

Mithilfe von Sicherungen können Sie Sicherungszeitpläne konfigurieren, um tägliche oder wöchentliche Sicherungen der angegebenen Datenbank durchzuführen. Anschließend können Sie diese Sicherungen verwenden, um Daten in einer neuen Datenbank wiederherzustellen.

Über Backups

Ein Backup ist eine konsistente Kopie der Datenbank zu einem bestimmten Zeitpunkt. Das Backup enthält alle Daten- und Indexkonfigurationen zu diesem Zeitpunkt. Eine Sicherung enthält keine Datenbank- Lebensdauer von Richtlinien . Eine Sicherung befindet sich am selben Ort wie die Quelldatenbank.

Backups haben einen konfigurierbaren Aufbewahrungszeitraum und werden gespeichert, bis der Aufbewahrungszeitraum abläuft oder bis Sie das Backup löschen. Durch das Löschen der Quelldatenbank werden zugehörige Sicherungen nicht automatisch gelöscht.

Cloud Firestore speichert Metadaten im Zusammenhang mit Backups und Backup-Zeitplänen im Zusammenhang mit einer Datenbank. Cloud Firestore speichert diese Metadaten, bis alle Sicherungen für die Datenbank ablaufen oder gelöscht werden.

Das Erstellen oder Aufbewahren von Backups hat keinen Einfluss auf die Leistung von Lese- oder Schreibvorgängen in Ihrer Live-Datenbank.

Kosten

Wenn Sie Backups verwenden, wird Ihnen Folgendes in Rechnung gestellt:

  • Die von jeder Sicherung verwendete Speichermenge.
  • Die Kosten für einen Wiederherstellungsvorgang richten sich nach der Größe des Backups.

Weitere Einzelheiten und genaue Preise finden Sie auf der Seite „Preise“ .

Bevor Sie beginnen

Für diese Funktion ist der Blaze-Preisplan erforderlich.

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie zum Verwalten von Sicherungen und Sicherungszeitplänen benötigen, bitten Sie Ihren Administrator, Ihnen eine oder mehrere der folgenden Identitäts- und Zugriffsverwaltungsrollen zu erteilen:

  • roles/datastore.owner : Vollständiger Zugriff auf die Cloud Firestore-Datenbank
  • Die folgenden Rollen sind ebenfalls verfügbar, aber in der Google Cloud Platform Console nicht sichtbar. Verwenden Sie die Google Cloud CLI , um diese Rollen zuzuweisen:

    • roles/datastore.backupsAdmin : Lese- und Schreibzugriff auf Backups
    • roles/datastore.backupsViewer : Lesezugriff auf Backups
    • roles/datastore.backupSchedulesAdmin : Lese- und Schreibzugriff auf Sicherungszeitpläne
    • roles/datastore.backupSchedulesViewer : Lesezugriff auf Sicherungszeitpläne
    • roles/datastore.restoreAdmin : Berechtigungen zum Initiieren von Wiederherstellungsvorgängen

Erstellen und verwalten Sie Sicherungspläne

Die folgenden Beispiele zeigen, wie Sie einen Backup-Zeitplan einrichten. Für jede Datenbank können Sie bis zu einen täglichen Sicherungsplan und bis zu einen wöchentlichen Sicherungsplan konfigurieren. Sie können nicht mehrere wöchentliche Backup-Zeitpläne für verschiedene Wochentage konfigurieren.

Sie können die genaue Tageszeit der Sicherung nicht konfigurieren. Backups werden jeden Tag zu unterschiedlichen Zeiten erstellt. Für wöchentliche Backup-Zeitpläne können Sie den Wochentag konfigurieren, an dem ein Backup durchgeführt werden soll.

Erstellen Sie einen Backup-Zeitplan

Um einen Backup-Zeitplan für eine Datenbank zu erstellen, verwenden Sie den Befehl gcloud alpha firestore backups schedules create .

Erstellen Sie einen täglichen Sicherungsplan

Um einen täglichen Sicherungsplan zu erstellen, setzen Sie das Flag --recurrence auf daily :

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=daily \
--retention=RETENTION_PERIOD

Ersetzen Sie Folgendes:

  • DATABASE_ID : Die ID der zu sichernden Datenbank. Für die Standarddatenbank auf (default) setzen.
  • RETENTION_PERIOD : Für eine daily Backup-Wiederholung legen Sie diesen Wert auf bis zu 7 Tage ( 7d ) fest. Wenn Sie eine weekly Backup-Wiederholung festlegen, stellen Sie diesen auf einen Wert von bis zu 14 Wochen ( 14w ) ein.

Erstellen Sie einen wöchentlichen Backup-Zeitplan

Um einen wöchentlichen Backup-Zeitplan zu erstellen, setzen Sie das Flag --recurrence auf weekly :

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=weekly \
--retention=RETENTION_PERIOD \
--day-of-week=DAY

Ersetzen Sie Folgendes:

  • DATABASE_ID : Die ID der zu sichernden Datenbank. Für die Standarddatenbank auf (default) setzen.
  • RETENTION_PERIOD : Für eine weekly Backup-Wiederholung legen Sie diesen Wert auf bis zu 14 Wochen ( 14w ) fest.
  • DAY : Der Wochentag, an dem das Backup erstellt werden soll. Stellen Sie eine der folgenden Optionen ein:
    • SUN für Sonntag
    • MON für Montag
    • TUE für Dienstag
    • WED für Mittwoch
    • THU für Donnerstag
    • FRI für Freitag
    • SAT für Samstag

Backup-Zeitpläne auflisten

Um alle Backup-Zeitpläne für eine Datenbank aufzulisten, verwenden Sie den Befehl gcloud alpha firestore backups schedules list . Dieser Befehl gibt Informationen zu allen Sicherungsplänen zurück.

gcloud alpha firestore backups schedules list \
--database='DATABASE_ID'

Ersetzen Sie DATABASE_ID durch die ID der Datenbank. Verwenden Sie (default) für die Standarddatenbank.

Beschreiben Sie den Backup-Zeitplan

Um Informationen zu einem Backup-Zeitplan abzurufen, verwenden Sie den Befehl gcloud alpha firestore backups schedules describe “:

gcloud alpha firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

Ersetzen Sie Folgendes:

  • DATABASE_ID : Die ID der zu sichernden Datenbank. Für die Standarddatenbank auf (default) setzen.
  • BACKUP_SCHEDULE_ID : Die ID eines Sicherungsplans. Sie können die ID jedes Backup-Zeitplans anzeigen, wenn Sie alle Backup-Zeitpläne auflisten .

Aktualisieren Sie einen Backup-Zeitplan

Um den Aufbewahrungszeitraum eines Backup-Zeitplans zu aktualisieren, verwenden Sie den Befehl gcloud alpha firestore backups schedules update “:

gcloud alpha firestore backups schedules update \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
--retention=RETENTION_PERIOD

Ersetzen Sie Folgendes:

  • DATABASE_ID : Die ID der zu sichernden Datenbank. Für die Standarddatenbank auf (default) setzen.
  • BACKUP_SCHEDULE_ID : Die ID eines Sicherungsplans. Sie können die ID jedes Backup-Zeitplans anzeigen, wenn Sie alle Backup-Zeitpläne auflisten .
  • RETENTION_PERIOD : Wenn Sie eine daily Backup-Wiederholung festlegen, legen Sie diesen auf einen Wert von bis zu 7 Tagen ( 7d Tage) fest. Wenn Sie eine weekly Backup-Wiederholung festlegen, stellen Sie diesen auf einen Wert von bis zu 14 Wochen ( 14w ) ein.

Löschen Sie einen Backup-Zeitplan

Um einen Backup-Zeitplan zu löschen, verwenden Sie den Befehl gcloud alpha firestore backups schedules delete :

gcloud alpha firestore backups schedules delete \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

Ersetzen Sie Folgendes:

  • DATABASE_ID : Die ID der zu sichernden Datenbank. Für die Standarddatenbank auf (default) setzen.
  • BACKUP_SCHEDULE_ID : Die ID eines Sicherungsplans. Sie können die ID jedes Backup-Zeitplans anzeigen, wenn Sie alle Backup-Zeitpläne auflisten .

Beachten Sie, dass durch das Löschen eines Backup-Zeitplans keine Backups gelöscht werden, die bereits mit diesem Zeitplan erstellt wurden. Sie können warten, bis sie nach Ablauf der Aufbewahrungsfrist ablaufen, oder ein Backup manuell löschen, siehe Backup löschen .

Backups verwalten

Backups auflisten

Um verfügbare Backups aufzulisten, verwenden Sie den Befehl gcloud alpha firestore backups list :

gcloud alpha firestore backups list \
--format="table(name, database, state)"

Das --format="table(name, database, state)" formatiert die Ausgabe in ein besser lesbares Format.

Um nur die Backups von einem bestimmten Speicherort aufzulisten, verwenden Sie das Flag --location :

gcloud alpha firestore backups list \
--location=LOCATION \
--format="table(name, database, state)"

Ersetzen Sie LOCATION durch den Namen eines Cloud Firestore-Standorts.

Beschreiben Sie ein Backup

Um Details zu einer Sicherung anzuzeigen, verwenden Sie den Befehl gcloud alpha firestore backups describe “:

gcloud alpha firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID
  • LOCATION : Der Standort der Datenbank.
  • BACKUP_ID : Die ID eines Backups. Sie können die ID jedes Backups anzeigen, wenn Sie alle Backups auflisten .

Sicherung löschen

Um ein Backup zu löschen, verwenden Sie den gcloud alpha firestore backups delete Befehl:

gcloud alpha firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID
  • LOCATION : Der Standort der Datenbank.
  • BACKUP_ID : Die ID eines Backups. Sie können die ID jedes Backups anzeigen, wenn Sie alle Backups auflisten .

Daten aus einer Datenbanksicherung wiederherstellen

Bei einem Wiederherstellungsvorgang werden die Daten aus einem Backup in eine neue Cloud Firestore-Datenbank geschrieben. Um einen Wiederherstellungsvorgang zu starten, verwenden Sie den Befehl gcloud alpha firestore databases restore :

gcloud alpha 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 eines Backups. Sie können die ID jedes Backups anzeigen, wenn Sie alle Backups auflisten .
  • DATABASE_ID : Eine Datenbank-ID für die neue Datenbank. Sie können keine Datenbank-ID verwenden, die bereits verwendet wird.

Die Ausgabe umfasst 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
  ...

Das metadata enthält eine progressPercentage Komponente, die den geschätzten bisherigen Fortschritt der Wiederherstellung detailliert beschreibt, und einen operationState der den Gesamtstatus der Wiederherstellung angibt.

Um diese Informationen erneut abzurufen, verwenden Sie gcloud firestore operations list :

gcloud firestore operations list --database=DATABASE_ID

Oder verwenden Sie das name aus der oben beschriebenen Ausgabe und gcloud firestore operations describe :

gcloud firestore operations describe OPERATION_NAME