Tworzenie kopii zapasowej i przywracanie danych

Dotyczy wersji Cloud Firestore Standard i Cloud Firestore Enterprise.

Na tej stronie opisano, jak korzystać z funkcji zaplanowanych kopii zapasowych Cloud Firestore w trybie zgodności z MongoDB. Kopie zapasowe chronią dane przed uszkodzeniem na poziomie aplikacji lub przypadkowym usunięciem.

Kopie zapasowe umożliwiają skonfigurowanie 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 do przywrócenia danych w nowej bazie 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 tego momentu.

Kopia zapasowa nie zawiera zasad 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 jego wygaśnięcia lub do momentu ich usunięcia. Usunięcie bazy danych źródłowej nie powoduje automatycznego usunięcia powiązanych kopii zapasowych.

Cloud Firestore przechowuje metadane związane z kopiami zapasowymi i harmonogramami 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 lub przechowywanie kopii zapasowych nie wpływa na wydajność odczytu ani zapisu w aktywnej bazie danych.

Koszty

Gdy korzystasz z kopii zapasowych, naliczane są opłaty za:

  • Ilość miejsca na dane używanego przez poszczególne kopie zapasowe.
  • W przypadku operacji przywracania opłaty są naliczane w zależności od rozmiaru kopii zapasowej.

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

Zanim zaczniesz

Ta funkcja wymaga abonamentu Blaze.

Wymagane role

Aby uzyskać uprawnienia potrzebne do zarządzania kopiami zapasowymi i harmonogramami tworzenia kopii zapasowych, poproś administratora o przyznanie Ci co najmniej jednej z tych ról zarządzania tożsamościami i dostępem:

  • 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: dostęp 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 kopii zapasowej. W przypadku każdej bazy danych możesz skonfigurować maksymalnie 1 harmonogram codziennych kopii zapasowych i 1 harmonogram cotygodniowych kopii zapasowych. Nie możesz skonfigurować wielu harmonogramów tygodniowych kopii zapasowych na różne dni tygodnia.

Nie możesz skonfigurować dokładnej pory dnia, w której ma być tworzona kopia zapasowa. Kopie zapasowe są wykonywane 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 odszukaj 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 kopii zapasowych.
  3. Aby edytować ustawienia odtwarzania awaryjnego, kliknij Edytuj.
  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 lub firebase firestore:databases:backups:schedules. 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ć. Ustaw wartość '(default)' dla domyślnej bazy danych.
  • RETENTION_PERIOD: ustaw wartość do 14 tygodni (14w).
Terraform
Aby utworzyć harmonogram tworzenia kopii zapasowych codziennie, 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ć. Ustaw wartość '(default)' dla domyślnej bazy danych.
  • Możesz też użyć odwołania do zasobu w zasobie Terraform o typie google_firestore_database.
  • RETENTION_PERIOD_SECONDS: ustaw wartość w sekundach, a po niej dodaj literę „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 odszukaj 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 kopii zapasowych.
  3. Aby edytować ustawienia odtwarzania awaryjnego, kliknij Edytuj.
  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:
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ć. Ustaw wartość '(default)' dla domyślnej bazy danych.
  • RETENTION_PERIOD: ustaw wartość do 14 tygodni (14w).
  • DAY: dzień tygodnia, w którym ma być tworzona kopia zapasowa. Ustaw jedną z tych opcji:
    • SUNDAY w niedzielę
    • MONDAY w przypadku poniedziałku
    • TUESDAY – wtorek
    • WEDNESDAY na środę
    • THURSDAY w czwartek
    • FRIDAY w przypadku piątku
    • SATURDAY w sobotę
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ć. Ustaw wartość '(default)' dla domyślnej bazy danych.
  • Możesz też użyć odwołania do zasobu w zasobie Terraform o typie google_firestore_database.
  • RETENTION_PERIOD_SECONDS: ustaw wartość w sekundach, a po niej dodaj literę „s”. Maksymalna wartość to 8467200s (14 tygodni).
  • DAY: dzień tygodnia, w którym wykonywana będzie kopia zapasowa. Ustaw jedną z tych opcji:
    • SUNDAY w niedzielę
    • MONDAY w przypadku poniedziałku
    • TUESDAY – wtorek
    • WEDNESDAY na środę
    • THURSDAY w czwartek
    • FRIDAY w przypadku piątku
    • SATURDAY w sobotę

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 odszukaj 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 kopii zapasowych.
  3. Otworzy się strona Odtwarzanie po awarii. Na tej stronie opisujemy harmonogramy tworzenia kopii zapasowych i wyświetlamy listę dostępnych kopii zapasowych.
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. Użyj '(default)' w przypadku domyślnej bazy danych.

Opis harmonogramu tworzenia kopii zapasowych

Aby uzyskać 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 odszukaj 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 kopii zapasowych.
  3. Otworzy się strona Odtwarzanie po awarii. Na tej stronie opisujemy harmonogramy tworzenia kopii zapasowych i wyświetlamy listę dostępnych kopii zapasowych.
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ć. Ustaw wartość '(default)' dla domyślnej bazy danych.
  • BACKUP_SCHEDULE_ID: Identyfikator harmonogramu tworzenia kopii zapasowych. Identyfikator każdego harmonogramu kopii zapasowych możesz wyświetlić, gdy wyświetlisz listę wszystkich harmonogramów kopii zapasowych.

Aktualizowanie harmonogramu tworzenia kopii zapasowych

Aby zaktualizować okres przechowywania harmonogramu 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 odszukaj wiersz bazy danych. W kolumnie Zaplanowane kopie zapasowe kliknij Wyświetl kopie zapasowe lub Edytuj ustawienia.
  3. Aby edytować ustawienia odtwarzania awaryjnego, kliknij Edytuj.
  4. Zmień ustawienia harmonogramu tworzenia kopii zapasowej, 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 kopii zapasowych, ale nie możesz zaktualizować jego cyklicznoś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 harmonogram z wybraną częstotliwością.

Usuwanie harmonogramu tworzenia kopii zapasowych

Aby usunąć harmonogram 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 odszukaj 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 kopii zapasowych.
  3. Aby edytować ustawienia odtwarzania awaryjnego, kliknij Edytuj.
  4. Zmień ustawienia harmonogramu tworzenia kopii zapasowej, 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 utworzonych już zgodnie z tym harmonogramem. Możesz poczekać, aż wygasną po upływie okresu przechowywania, lub ręcznie usunąć kopię zapasową. Aby to zrobić, zapoznaj się z sekcją Usuwanie 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 odszukaj 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 kopii zapasowych.
  3. Aby edytować ustawienia odtwarzania awaryjnego, kliknij Edytuj.
  4. Zmień ustawienia harmonogramu tworzenia kopii zapasowej, a następnie kliknij Zapisz.
wiersz poleceń Firebase
Użyj polecenia firebase firestore:backups:list:
firebase firestore:backups:list
Aby wyświetlić listę tylko kopii zapasowych z określonej lokalizacji, użyj flagi --location:
firebase firestore:backups:list \
--location=LOCATION
Zastąp LOCATION nazwą lokalizacji Cloud Firestore w trybie zgodności z MongoDB.

Opisywanie kopii zapasowej

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 odszukaj 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 kopii zapasowych.
  3. Otworzy się strona Odtwarzanie po awarii. Na tej stronie opisujemy harmonogramy tworzenia kopii zapasowych i wyświetlamy listę dostępnych kopii zapasowych.
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 odszukaj 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 kopii zapasowych. Otworzy się strona Odtwarzanie po awarii. Na tej stronie opisujemy harmonogramy tworzenia kopii zapasowych i wyświetlamy listę dostępnych kopii zapasowych.
  3. W tabeli Kopie zapasowe znajdź wiersz kopii zapasowej, a 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 w trybie zgodności z MongoDB.

Aby rozpocząć przywracanie, 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 odszukaj 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 kopii zapasowych. Otworzy się strona Odtwarzanie po awarii. Na tej stronie opisujemy harmonogramy tworzenia kopii zapasowych i wyświetlamy listę dostępnych kopii zapasowych.
  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 przywracania z wybranej kopii zapasowej. Zastąp ID_OF_NEW_DATABASE identyfikatorem bazy danych i uruchom polecenie.

    Po uruchomieniu polecenia otrzymasz odpowiedź z dodatkowymi informacjami o operacji. Baza danych wkrótce pojawi się na liście baz danych. Operacja przywracania potrwa trochę czasu 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 wyświetlić, gdy wyświetlisz listę wszystkich kopii zapasowych.
  • DATABASE_ID: identyfikator bazy danych dla nowej bazy danych. Nie możesz użyć identyfikatora bazy danych, który jest już używany.

Co zrobić po przywróceniu

Po zakończeniu przywracania wykonaj te czynności:

  • Sprawdź, czy do nowej bazy danych zastosowano odpowiednie ustawienia IAM.

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