Direkte Wiederherstellung ausführen

Gilt für die Cloud Firestore Standard- und Enterprise-Edition.

Auf dieser Seite wird beschrieben, wie Sie Daten in einer Sicherung in einer Datenbank mit demselben Namen wie die Quelldatenbank der Sicherung wiederherstellen. Bevor Sie diese Seite lesen, sollten Sie sich mit Daten sichern und wiederherstellen vertraut gemacht haben.

Direkte Wiederherstellung

Bei einer direkten Wiederherstellung können Sie eine Datenbank aus einer Sicherung in der Quelldatenbank wiederherstellen, in der die Sicherung erstellt wurde, während die ursprüngliche Datenbank weiterhin vorhanden ist. Mit einer In-Place-Wiederherstellung können Sie vermeiden, dass der Traffic umgeleitet oder eine Datenbank mit einem anderen Namen erstellt werden muss.

Für einen Wiederherstellungsvorgang muss eine Zieldatenbank verwendet werden, die noch nicht vorhanden ist. Sie können jedoch eine In-Place-Wiederherstellung simulieren, indem Sie die Quelldatenbank löschen und dann aus einer Sicherung in einer neuen Datenbank mit demselben Namen wie die Quelldatenbank wiederherstellen.

Direkte Wiederherstellung durchführen

So führen Sie eine In-Place-Wiederherstellung durch:

  1. Wählen Sie die Sicherung aus, die für den Wiederherstellungsvorgang verwendet werden soll.
  2. Löschen Sie die vorhandene Datenbank.
  3. Verwenden Sie die Sicherung und die Datenbank-ID der gelöschten Datenbank, um den Wiederherstellungsvorgang abzuschließen.
Achtung: Wenn Ihre App eine Cloud Firestore-Clientbibliothek im nativen Modus verwendet und Ihre Clients einen Offlinecache nutzen, werden bei einer In-Place-Wiederherstellung Ihre Schreibvorgänge möglicherweise in die wiederhergestellte Datenbank geschrieben, anstatt sie zu verwerfen. Dies kann passieren, wenn der Client, der mit der gelöschten Datenbank verbunden ist, offline geht und während der Offlinezeit Schreibvorgänge im Cache angesammelt werden, während Sie eine In-Place-Wiederherstellung durchführen.

Hinweis

Wir empfehlen, die folgenden Schritte auszuführen, bevor Sie mit der In-Place-Wiederherstellung beginnen.

Rufen Sie die Indexkonfiguration Ihrer Datenbank ab und kopieren Sie sie. Verwenden Sie die Indexkonfiguration, um Indexe neu zu erstellen, nachdem Sie den In-Place-Wiederherstellungsvorgang abgeschlossen haben. Verwenden Sie die folgenden Befehle, um die Indexkonfiguration Ihrer Datenbank abzurufen:

  • Verwenden Sie gcloud firestore indexes composite list, um eine Liste der zusammengesetzten Indexe abzurufen:

        gcloud firestore indexes composite list --database=DATABASE_ID
    

    Ersetzen Sie DATABASE_ID durch die ID Ihrer Datenbank.

  • Verwenden Sie gcloud firestore indexes fields list, um eine Liste von Einzelfeldindex-Ausnahmen (integriert) abzurufen.

        gcloud firestore indexes fields list --database=DATABASE_ID
    

Direkte Wiederherstellung durchführen

So führen Sie eine In-Place-Wiederherstellung durch: Bei diesem Vorgang ist eine Ausfallzeit zwischen dem Löschen der Datenbank und dem Abschluss des Wiederherstellungsvorgangs erforderlich.

Sobald ein Wiederherstellungsvorgang gestartet wurde, können Sie ihn nicht mehr abbrechen. Sie müssen warten, bis er abgeschlossen ist. Die Datenbank-ID, die im Vorgang verwendet wird, wird sofort für den Wiederherstellungsvorgang belegt.

  1. Verwenden Sie den Befehl gcloud firestore backups list, um die Sicherung zu identifizieren, die für den Wiederherstellungsvorgang verwendet werden soll, und notieren Sie sich den Ressourcennamen. Der Ressourcenname hat das folgende Format:

        projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
    
  2. Verwenden Sie den Befehl gcloud firestore databases delete, um die vorhandene Datenbank zu löschen:

        gcloud firestore databases delete --database='DATABASE_ID'
    

    Ersetzen Sie DATABASE_ID durch die Datenbank-ID.

  3. Warten Sie nach dem Löschen der Datenbank mindestens 5 Minuten, bis die Datenbank-ID wieder verfügbar ist. Starten Sie einen Wiederherstellungsvorgang mit dem Befehl gcloud firestore databases restore:

    gcloud firestore databases restore \
    --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
    --destination-database='DATABASE_ID'
    

    Ersetzen Sie DATABASE_ID durch die Datenbank-ID.

Nächste Schritte