Przywracanie na miejscu

Dotyczy wersji Cloud Firestore Standard i Cloud Firestore Enterprise.

Na tej stronie znajdziesz informacje o tym, 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 kopii zapasowej i przywracanie danych.

Przywracanie na miejscu

Przywracanie w miejscu umożliwia przywrócenie bazy danych z kopii zapasowej do źródłowej bazy danych, która utworzyła kopię zapasową, podczas gdy oryginalna baza danych nadal istnieje. Przywracanie w miejscu pomaga 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 w 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 w miejscu

Aby przywrócić dane w miejscu, wykonaj te czynności:

  1. Wskaż kopię zapasową, której chcesz użyć do przywracania.
  2. Usuń istniejącą bazę danych.
  3. Aby dokoń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 w miejscu może spowodować zapisanie zmian w przywróconej bazie danych zamiast ich odrzucenia. Taka sytuacja może wystąpić, jeśli klient połączony z usuniętą bazą danych przejdzie w tryb offline, a podczas gdy jest w trybie offline, w pamięci podręcznej gromadzą się zapisy w momencie, gdy wykonujesz przywracanie w miejscu.

Zanim zaczniesz

Zanim rozpoczniesz przywracanie w miejscu, wykonaj te czynności.

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

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

        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 w miejscu

Aby przeprowadzić przywracanie w 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ć. Musisz poczekać, aż się zakończy. 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óra ma być użyta w operacji przywracania, i zanotuj nazwę zasobu. Nazwa zasobu ma 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. Odczekaj co najmniej 5 minut od usunięcia bazy danych, zanim identyfikator bazy danych będzie 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?