Direkte Wiederherstellung durchführen

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 dem Thema Daten sichern und wiederherstellen vertraut gemacht haben.

Direkte Wiederherstellung

Mit einer direkten Wiederherstellung können Sie eine Datenbank aus einer Sicherung in der Quelldatenbank wiederherstellen, die die Sicherung erstellt hat, während die ursprüngliche Datenbank noch vorhanden ist. Mit einer direkten Wiederherstellung können Sie vermeiden, dass 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 direkte 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 direkte 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 die Wiederherstellung abzuschließen.
Achtung: Wenn Ihre Anwendung eine Cloud Firestore-Clientbibliothek im nativen Modus verwendet und Ihre Clients einen Offline-Cache verwenden, werden Ihre Schreibvorgänge bei einer direkten Wiederherstellung möglicherweise in die wiederhergestellte Datenbank geschrieben, anstatt verworfen zu werden. Diese Situation kann auftreten, wenn der mit der gelöschten Datenbank verbundene Client offline geht und währenddessen im Cache Schreibvorgänge akkumuliert werden, während Sie eine direkte Wiederherstellung durchführen.

Hinweis

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

Rufen Sie die Indexkonfiguration Ihrer Datenbank ab und kopieren Sie sie. Verwenden Sie die Indexkonfiguration, um Indexe nach Abschluss des direkten Wiederherstellungsvorgangs neu zu erstellen. 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 der (integrierten) Einzelfeldindex-Ausnahmen abzurufen.

        gcloud firestore indexes fields list --database=DATABASE_ID
    

Direkte Wiederherstellung durchführen

Führen Sie die folgenden Schritte aus, um eine direkte Wiederherstellung durchzuführen. Dieser Vorgang erfordert eine Ausfallzeit zwischen dem Löschen der Datenbank und dem Abschluss des Wiederherstellungsvorgangs.

Sobald ein Wiederherstellungsvorgang beginnt, können Sie ihn nicht mehr abbrechen und müssen warten, bis er abgeschlossen ist. Die im Wiederherstellungsvorgang verwendete Datenbank-ID wird sofort 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