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 Sichern und Wiederherstellen von Daten vertraut machen.

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, Traffic umzuleiten oder eine Datenbank mit einem anderen Namen zu erstellen.

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. Identifizieren Sie die Sicherung, 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 im nativen Modus-Clientbibliothek verwendet und Ihre Clients einen Offlinecache verwenden, werden bei einer direkten Wiederherstellung Ihre Schreibvorgänge möglicherweise in die wiederhergestellte Datenbank übertragen, anstatt sie zu verwerfen. Diese Situation kann auftreten, 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 direkte Wiederherstellung durchführen.

Hinweis

Wir empfehlen, die folgenden Schritte auszuführen, bevor Sie den direkten Wiederherstellungsprozess starten.

Rufen Sie die Indexkonfiguration Ihrer Datenbank ab und kopieren Sie sie. Verwenden Sie die Indexkonfiguration, um die Indexe neu zu erstellen, nachdem Sie den direkten 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 der Ausnahmen für Einzelfeldindexe (integriert) 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 Datenbank-ID, die im Wiederherstellungsvorgang verwendet wird, ist 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 gcloud firestore databases restore Befehl:

    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