Przywracanie na miejscu

Dotyczy wersji Firestore Standard i Firestore Enterprise.

Na tej stronie opisano, jak przywrócić dane z kopii zapasowej do bazy danych o tej samej nazwie co źródłowa baza danych kopii zapasowej. Zanim przeczytasz tę stronę, zapoznaj się z artykułem Tworzenie i przywracanie kopii zapasowej danych.

Przywracanie z zachowaniem infrastruktury

Przywracanie w miejscu umożliwia przywrócenie bazy danych z kopii zapasowej do źródłowej bazy danych, która utworzyła kopię zapasową, gdy oryginalna baza danych nadal istnieje. Przywracanie na miejscu pozwala uniknąć przekierowywania ruchu lub tworzenia bazy danych o innej nazwie.

Operacja przywracania musi używać docelowej bazy danych, która jeszcze nie istnieje. Możesz jednak zasymulować przywracanie na miejscu, usuwając źródłową bazę danych, a następnie przywracając ją z kopii zapasowej do nowej bazy danych o tej samej nazwie co źródłowa baza danych.

Przeprowadzanie przywracania na miejscu

Aby przeprowadzić przywracanie na miejscu, wykonaj te czynności:

  1. Określ kopię zapasową, której chcesz użyć do przywracania.
  2. Usuń istniejącą bazę danych.
  3. Aby ukończyć operację przywracania, użyj kopii zapasowej i identyfikatora usuniętej bazy danych.
Uwaga: jeśli Twoja aplikacja korzysta z biblioteki klienta Cloud Firestore w trybie natywnym, a klienci używają pamięci podręcznej offline, przywracanie na miejscu może spowodować, że zapisy zostaną przeniesione do przywróconej bazy danych, a nie odrzucone. Taka sytuacja może wystąpić, gdy klient połączony z usuniętą bazą danych przejdzie w tryb offline i w tym czasie w pamięci podręcznej będą gromadzone zapisy w momencie przywracania na miejscu.

Zanim zaczniesz

Zanim rozpoczniesz proces przywracania na miejscu, zalecamy wykonanie tych czynności.

Pobierz i skopiuj konfigurację indeksu bazy danych. Użyj konfiguracji indeksu, aby ponownie utworzyć indeksy po zakończeniu operacji przywracania na miejscu. Aby pobrać konfigurację indeksu bazy danych, użyj tych poleceń:

  • Aby pobrać listę indeksów złożonych, użyj gcloud firestore indexes composite list:

        gcloud firestore indexes composite list --database=DATABASE_ID
    

    Zastąp DATABASE_ID identyfikatorem bazy danych.

  • Użyj gcloud firestore indexes fields list, aby pobrać listę wykluczeń indeksu pojedynczego pola (wbudowanego).

        gcloud firestore indexes fields list --database=DATABASE_ID
    

Przeprowadzanie przywracania na miejscu

Aby wykonać operację przywracania na miejscu, wykonaj te czynności. Ten proces wymaga przestoju między momentem usunięcia bazy danych a zakończeniem operacji przywracania.

Po rozpoczęciu operacji przywracania nie można jej anulować i trzeba poczekać na jej zakończenie. Operacja przywracania natychmiast zajmuje identyfikator bazy danych użyty w operacji.

  1. Użyj polecenia gcloud firestore backups list, aby określić kopię zapasową, której chcesz użyć do operacji przywracania, i zanotuj nazwę zasobu. Nazwa zasobu ma ten format:

        projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
    
  2. Aby usunąć istniejącą bazę danych, użyj polecenia gcloud firestore databases delete:

        gcloud firestore databases delete --database='DATABASE_ID'
    

    Zastąp DATABASE_ID identyfikatorem bazy danych.

  3. Po usunięciu bazy danych odczekaj co najmniej 5 minut, aż identyfikator bazy danych stanie się ponownie dostępny. Rozpocznij operację przywracania za pomocą polecenia gcloud firestore databases restore:

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

    Zastąp DATABASE_ID identyfikatorem bazy danych.

Co dalej?