Tworzenie kopii zapasowej i przywracanie danych

Dotyczy wersji Firestore Standard i Firestore Enterprise.

Na tej stronie dowiesz się, jak korzystać z funkcji zaplanowanych kopii zapasowych Cloud Firestore. Używaj kopii zapasowych, aby chronić dane przed uszkodzeniem na poziomie aplikacji lub przypadkowym usunięciem.

Kopie zapasowe umożliwiają konfigurowanie harmonogramów tworzenia kopii zapasowych, aby codziennie lub co tydzień tworzyć kopie zapasowe określonej bazy danych. Następnie możesz użyć tych kopii zapasowych, aby przywrócić dane do nowej bazy danych.

Informacje o kopiach zapasowych

Kopia zapasowa to spójna kopia bazy danych z określonego momentu. Kopia zapasowa zawiera wszystkie dane i konfiguracje indeksów z danego momentu.

Kopia zapasowa nie zawiera zasad dotyczących czasu życia bazy danych. Kopia zapasowa znajduje się w tej samej lokalizacji co źródłowa baza danych.

Kopie zapasowe mają konfigurowalny okres przechowywania i są przechowywane do momentu zakończenia tego okresu lub do momentu usunięcia kopii zapasowej. Usunięcie źródłowej bazy danych nie powoduje automatycznego usunięcia powiązanych kopii zapasowych.

Cloud Firestore przechowuje metadane związane z kopiami zapasowymi i harmonogramami tworzenia kopii zapasowych powiązanymi z bazą danych. Cloud Firestore przechowuje te metadane, dopóki wszystkie kopie zapasowe bazy danych nie wygasną lub nie zostaną usunięte.

Tworzenie i przechowywanie kopii zapasowych nie wpływa na wydajność odczytów ani zapisów w aktywnej bazie danych.

Koszty

Jeśli korzystasz z kopii zapasowych, opłaty są naliczane za:

  • Ilość miejsca na dane używanego przez każdą kopię zapasową.
  • Opłaty za operację przywracania są naliczane w zależności od rozmiaru kopii zapasowej.

Więcej informacji i dokładne stawki znajdziesz na stronie Ceny.

Zanim zaczniesz

Ta funkcja wymaga abonamentu Blaze.

Wymagane role

Aby uzyskać uprawnienia niezbędne do zarządzania kopiami zapasowymi i harmonogramami tworzenia kopii zapasowych, poproś administratora o przyznanie Ci co najmniej 1 z tych ról Identity and Access Management:

  • roles/datastore.owner: pełny dostęp do bazy danych Cloud Firestore
  • roles/datastore.backupsAdmin: uprawnienia do odczytu i zapisu kopii zapasowych.
  • roles/datastore.backupsViewer: dostęp do odczytu kopii zapasowych
  • roles/datastore.backupSchedulesAdmin: uprawnienia do odczytu i zapisu harmonogramów tworzenia kopii zapasowych
  • roles/datastore.backupSchedulesViewer: uprawnienia do odczytu harmonogramów tworzenia kopii zapasowych
  • roles/datastore.restoreAdmin: uprawnienia do inicjowania operacji przywracania.

Tworzenie harmonogramów tworzenia kopii zapasowych i zarządzanie nimi

Poniższe przykłady pokazują, jak skonfigurować harmonogram tworzenia kopii zapasowych. W przypadku każdej bazy danych możesz skonfigurować maksymalnie 1 harmonogram codziennego tworzenia kopii zapasowych i maksymalnie 1 harmonogram cotygodniowego tworzenia kopii zapasowych. Nie możesz skonfigurować wielu harmonogramów cotygodniowych kopii zapasowych na różne dni tygodnia.

Nie możesz skonfigurować dokładnej godziny tworzenia kopii zapasowej. Kopie zapasowe są tworzone o różnych porach każdego dnia. W przypadku harmonogramów cotygodniowych kopii zapasowych możesz skonfigurować dzień tygodnia, w którym wykonywana będzie kopia zapasowa.

Utwórz harmonogram tworzenia kopii zapasowych

Aby utworzyć harmonogram tworzenia kopii zapasowych, użyj jednego z tych narzędzi.

Tworzenie harmonogramu codziennego tworzenia kopii zapasowych

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia, w zależności od tego, czy istnieje harmonogram tworzenia kopii zapasowych.
  3. Kliknij Edytuj, aby edytować ustawienia odtwarzania awaryjnego.
  4. Zaznacz pole wyboru Codziennie, ustaw okres przechowywania, a następnie kliknij Zapisz.
wiersz poleceń Firebase
Aby utworzyć harmonogram tworzenia kopii zapasowych bazy danych, użyj polecenia firebase firestore:databases:backups:schedules:create. Aby utworzyć harmonogram codziennego tworzenia kopii zapasowych, ustaw flagę --recurrence na DAILY:
firebase firestore:backups:schedules:create \
--database 'DATABASE_ID' \
--recurrence 'DAILY' \
--retention RETENTION_PERIOD

Zastąp następujące elementy:

  • DATABASE_ID: identyfikator bazy danych, której kopię zapasową chcesz utworzyć. W przypadku domyślnej bazy danych ustaw wartość '(default)'.
  • RETENTION_PERIOD: ustaw wartość do 14 tygodni (14w).
Terraform
Aby utworzyć harmonogram codziennego tworzenia kopii zapasowych, utwórz zasób google_firestore_backup_schedule.
resource "google_firestore_backup_schedule" "daily-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  daily_recurrence {}
}

Zastąp następujące elementy:

  • PROJECT_ID: identyfikator projektu.
  • DATABASE_ID: identyfikator bazy danych, której kopię zapasową chcesz utworzyć. W przypadku domyślnej bazy danych ustaw wartość '(default)'.
  • Możesz też użyć odwołania do zasobu do zasobu Terraform typu google_firestore_database.
  • RETENTION_PERIOD_SECONDS: ustaw wartość w sekundach, a po niej dodaj „s”. Maksymalna wartość to 8467200s (14 tygodni).

Tworzenie tygodniowego harmonogramu tworzenia kopii zapasowych

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia, w zależności od tego, czy istnieje harmonogram tworzenia kopii zapasowych.
  3. Kliknij Edytuj, aby edytować ustawienia odtwarzania awaryjnego.
  4. Zaznacz pole wyboru Co tydzień, wybierz dzień tworzenia kopii zapasowej, ustaw okres przechowywania, a następnie kliknij Zapisz.
wiersz poleceń Firebase
Aby utworzyć harmonogram cotygodniowego tworzenia kopii zapasowych, ustaw flagę --recurrence na WEEKLY i wybierz --day-of-week:
firebase firestore:backups:schedules:create \
--database 'DATABASE_ID' \
--recurrence 'WEEKLY' \
--retention RETENTION_PERIOD
--day-of-week DAY
Zastąp te elementy:
  • DATABASE_ID: identyfikator bazy danych, której kopię zapasową chcesz utworzyć. W przypadku domyślnej bazy danych ustaw wartość '(default)'.
  • RETENTION_PERIOD: ustaw wartość do 14 tygodni (14w).
  • DAY: dzień tygodnia, w którym wykonywana będzie kopia zapasowa. Ustaw jedną z tych wartości:
    • SUNDAY – niedziela
    • MONDAY na poniedziałek
    • TUESDAY we wtorek
    • WEDNESDAY – środa
    • THURSDAY w przypadku czwartku
    • FRIDAY – piątek
    • SATURDAY – sobota,
Terraform
Aby utworzyć tygodniowy harmonogram tworzenia kopii zapasowych, utwórz zasób google_firestore_backup_schedule.
resource "google_firestore_backup_schedule" "weekly-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  weekly_recurrence {
    day = DAY
  }
}

Zastąp następujące elementy:

  • PROJECT_ID: identyfikator projektu.
  • DATABASE_ID: identyfikator bazy danych, której kopię zapasową chcesz utworzyć. W przypadku domyślnej bazy danych ustaw wartość '(default)'.
  • Możesz też użyć odwołania do zasobu do zasobu Terraform typu google_firestore_database.
  • RETENTION_PERIOD_SECONDS: ustaw wartość w sekundach, a po niej dodaj „s”. Maksymalna wartość to 8467200s (14 tygodni).
  • DAY: dzień tygodnia, w którym wykonywana będzie kopia zapasowa. Ustaw jedną z tych wartości:
    • SUNDAY – niedziela
    • MONDAY na poniedziałek
    • TUESDAY we wtorek
    • WEDNESDAY – środa
    • THURSDAY w przypadku czwartku
    • FRIDAY – piątek
    • SATURDAY – sobota,

Wyświetlanie listy harmonogramów tworzenia kopii zapasowych

Aby wyświetlić listę wszystkich harmonogramów tworzenia kopii zapasowych bazy danych, użyj jednej z tych metod:

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia, w zależności od tego, czy istnieje harmonogram tworzenia kopii zapasowych.
  3. Otworzy się strona Odtwarzanie awaryjne. Na tej stronie opisano harmonogramy tworzenia kopii zapasowych i wymieniono dostępne kopie zapasowe.
wiersz poleceń Firebase
Użyj polecenia firebase firestore:backups:schedules:list.
firebase firestore:backups:schedules:list \
--database 'DATABASE_ID'
Zastąp DATABASE_ID identyfikatorem bazy danych. W przypadku domyślnej bazy danych użyj '(default)'.

Opisz harmonogram tworzenia kopii zapasowych

Aby pobrać informacje o harmonogramie tworzenia kopii zapasowych, użyj jednej z tych metod:

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia, w zależności od tego, czy istnieje harmonogram tworzenia kopii zapasowych.
  3. Otworzy się strona Odtwarzanie awaryjne. Na tej stronie opisano harmonogramy tworzenia kopii zapasowych i wymieniono dostępne kopie zapasowe.
gcloud
Użyj polecenia gcloud firestore backups schedules describe:
gcloud firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
Zastąp te elementy:
  • DATABASE_ID: identyfikator bazy danych, której kopię zapasową chcesz utworzyć. W przypadku domyślnej bazy danych ustaw wartość '(default)'.
  • BACKUP_SCHEDULE_ID: identyfikator harmonogramu tworzenia kopii zapasowych. Identyfikator każdego harmonogramu tworzenia kopii zapasowych możesz wyświetlić, gdy wyświetlisz listę wszystkich harmonogramów tworzenia kopii zapasowych.

Aktualizowanie harmonogramu tworzenia kopii zapasowych

Aby zaktualizować okres przechowywania harmonogramu tworzenia kopii zapasowych, użyj jednej z tych metod:

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia.
  3. Kliknij Edytuj, aby edytować ustawienia odtwarzania awaryjnego.
  4. Zmień ustawienia harmonogramu tworzenia kopii zapasowych, a następnie kliknij Zapisz.
wiersz poleceń Firebase
Użyj polecenia firebase firestore:backups:schedules:update:
firebase firestore:backups:schedules:update \
BACKUP_SCHEDULE \
--retention RETENTION_PERIOD
Zastąp te elementy:

Możesz zaktualizować okres przechowywania harmonogramu tworzenia kopii zapasowych, ale nie możesz zaktualizować jego częstotliwości. Jeśli potrzebujesz harmonogramu tworzenia kopii zapasowych z inną częstotliwością, usuń stary harmonogram, jeśli nie jest już potrzebny, i utwórz nowy z preferowaną częstotliwością.

Usuwanie harmonogramu tworzenia kopii zapasowych

Aby usunąć harmonogram tworzenia kopii zapasowych, użyj jednej z tych metod:

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia, w zależności od tego, czy istnieje harmonogram tworzenia kopii zapasowych.
  3. Kliknij Edytuj, aby edytować ustawienia odtwarzania awaryjnego.
  4. Zmień ustawienia harmonogramu tworzenia kopii zapasowych, a następnie kliknij Zapisz.
wiersz poleceń Firebase
Użyj polecenia firebase firestore:backups:schedules:delete:
firebase firestore:backups:schedules:delete \
BACKUP_SCHEDULE
Zastąp te elementy:

Pamiętaj, że usunięcie harmonogramu tworzenia kopii zapasowych nie spowoduje usunięcia kopii zapasowych już utworzonych według tego harmonogramu. Możesz poczekać, aż wygasną po upływie okresu przechowywania, lub usunąć je ręcznie. Aby dowiedzieć się, jak to zrobić, przeczytaj artykuł o usuwaniu kopii zapasowej.

Zarządzanie kopiami zapasowymi

Wyświetlenie kopii zapasowych

Aby wyświetlić listę dostępnych kopii zapasowych, użyj jednej z tych metod:

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia, w zależności od tego, czy istnieje harmonogram tworzenia kopii zapasowych.
  3. Kliknij Edytuj, aby edytować ustawienia odtwarzania awaryjnego.
  4. Zmień ustawienia harmonogramu tworzenia kopii zapasowych, a następnie kliknij Zapisz.
wiersz poleceń Firebase
Użyj polecenia firebase firestore:backups:list:
firebase firestore:backups:list
Aby wyświetlić listę kopii zapasowych tylko z określonej lokalizacji, użyj flagi --location:
firebase firestore:backups:list \
--location=LOCATION
Zastąp LOCATION nazwą lokalizacji Cloud Firestore.

Opisz kopię zapasową

Aby wyświetlić szczegóły kopii zapasowej, użyj jednej z tych metod:

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia, w zależności od tego, czy istnieje harmonogram tworzenia kopii zapasowych.
  3. Otworzy się strona Odtwarzanie awaryjne. Na tej stronie opisano harmonogramy tworzenia kopii zapasowych i wymieniono dostępne kopie zapasowe.
wiersz poleceń Firebase
Użyj polecenia firebase firestore:backups:get:
firebase firestore:backups:get BACKUP
Zastąp te elementy:

Usuń kopię zapasową

Aby usunąć kopię zapasową, użyj jednej z tych metod.

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia, w zależności od tego, czy istnieje harmonogram tworzenia kopii zapasowych. Otworzy się strona Odtwarzanie awaryjne. Na tej stronie opisano harmonogramy tworzenia kopii zapasowych i wymieniono dostępne kopie zapasowe.
  3. W tabeli Kopie zapasowe znajdź wiersz kopii zapasowej i w kolumnie Działania kliknij Wyświetl więcej(). Kliknij Usuń.
  4. Potwierdź działanie w polu tekstowym i kliknij Usuń.
wiersz poleceń Firebase
Użyj polecenia firebase firestore:backups:delete:
firebase firestore:backups:delete \
BACKUP
Zastąp te elementy:

Przywracanie danych z kopii zapasowej bazy danych

Operacja przywracania zapisuje dane z kopii zapasowej w nowej bazie danych Cloud Firestore.

Aby rozpocząć operację przywracania, użyj jednej z tych metod:

Konsola Google Cloud
  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych znajdź wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia, w zależności od tego, czy istnieje harmonogram tworzenia kopii zapasowych. Otworzy się strona Odtwarzanie awaryjne. Na tej stronie opisano harmonogramy tworzenia kopii zapasowych i wymieniono dostępne kopie zapasowe.
  3. W tabeli Kopie zapasowe znajdź wiersz kopii zapasowej i w kolumnie Działania kliknij Wyświetl więcej(). Kliknij Przywróć za pomocą Cloud Shell.
  4. Otworzy się panel Cloud Shell z poleceniem gcloud CLI, które umożliwia przywrócenie danych z wybranej kopii zapasowej. Zastąp ID_OF_NEW_DATABASE identyfikatorem bazy danych i uruchom polecenie.

    Uruchomienie polecenia zwraca odpowiedź z dodatkowymi informacjami o operacji. Baza danych wkrótce pojawi się na liście baz danych. Operacja przywracania może trochę potrwać i musi się zakończyć, zanim baza danych będzie dostępna.

wiersz poleceń Firebase
Użyj polecenia firebase firestore:databases:restore:
firebase firestore:databases:restore \
--backup 'BACKUP' \
--database 'DATABASE_ID'
Zastąp te elementy:
  • BACKUP: pełna nazwa zasobu kopii zapasowej. Nazwę każdej kopii zapasowej możesz zobaczyć, gdy wyświetlisz listę wszystkich kopii zapasowych.
  • DATABASE_ID: identyfikator nowej bazy danych. Nie możesz użyć identyfikatora bazy danych, który jest już używany.

Ograniczenia

Operacja przywracania nie przywraca danych wyszukiwania App Engine ani obiektów blob z bazy danych (default). Te dane są prawidłowe tylko w przypadku bazy danych (default) i nie będą przydatne, jeśli przywrócisz dane z bazy danych (default) do bazy danych, która nie obsługuje takich danych, dlatego są wykluczone z kopii zapasowych.

Co zrobić po przywróceniu

Po zakończeniu przywracania wykonaj te czynności:

  • Sprawdź, czy do nowej bazy danych są stosowane odpowiednie ustawienia uprawnień.

  • Jeśli wcześniej używano zasad TTL, zastosuj je ponownie w nowej bazie danych. Zasady TTL nie są uwzględniane w kopiach zapasowych i nie są automatycznie stosowane do przywróconych baz danych.