Twórz kopie zapasowe i przywracaj dane

Na tej stronie opisano, jak korzystać z funkcji zaplanowanych kopii zapasowych Cloud Firestore. Korzystaj z kopii zapasowych, aby chronić swoje dane przed uszkodzeniem na poziomie aplikacji lub przypadkowym usunięciem.

Kopie zapasowe umożliwiają skonfigurowanie harmonogramów tworzenia kopii zapasowych w celu wykonywania codziennych lub cotygodniowych kopii zapasowych określonej bazy danych. Następnie możesz użyć tych kopii zapasowych do przywrócenia danych do nowej bazy danych.

O kopiach zapasowych

Kopia zapasowa to spójna kopia bazy danych w danym momencie. Kopia zapasowa zawiera wszystkie konfiguracje danych i indeksów obowiązujące w danym momencie. Kopia zapasowa nie zawiera zasad dotyczących czasu wygaśnięcia 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 wygaśnięcia okresu przechowywania 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 związanymi z bazą danych. Cloud Firestore przechowuje te metadane do czasu wygaśnięcia lub usunięcia wszystkich kopii zapasowych bazy danych.

Tworzenie lub przechowywanie kopii zapasowych nie ma wpływu na wydajność odczytu i zapisu w działającej bazie danych.

Koszty

Jeśli korzystasz z kopii zapasowych, naliczane są następujące opłaty:

  • Ilość miejsca wykorzystywanego przez każdą kopię zapasową.
  • Opłata za operację przywracania jest naliczana na podstawie rozmiaru kopii zapasowej.

Więcej szczegółów i dokładne stawki można znaleźć na stronie Cennik .

Zanim zaczniesz

Ta funkcja wymaga planu cenowego 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 następujących ról w zakresie zarządzania tożsamością i dostępem:

  • roles/datastore.owner : Pełny dostęp do bazy danych Cloud Firestore
  • Następujące role są również dostępne, ale niewidoczne w konsoli Google Cloud Platform. Użyj interfejsu CLI Google Cloud, aby przypisać te role:

    • roles/datastore.backupsAdmin : Dostęp do odczytu i zapisu kopii zapasowych
    • roles/datastore.backupsViewer : Dostęp do odczytu kopii zapasowych
    • roles/datastore.backupSchedulesAdmin : Dostęp 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

Twórz harmonogramy tworzenia kopii zapasowych i zarządzaj nimi

Poniższe przykłady pokazują, jak skonfigurować harmonogram tworzenia kopii zapasowych. Dla każdej bazy danych można skonfigurować maksymalnie jeden dzienny harmonogram tworzenia kopii zapasowych i maksymalnie jeden tygodniowy harmonogram tworzenia kopii zapasowych. Nie można skonfigurować wielu tygodniowych harmonogramów tworzenia kopii zapasowych dla różnych dni tygodnia.

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

Utwórz harmonogram tworzenia kopii zapasowych

Aby utworzyć harmonogram tworzenia kopii zapasowych bazy danych, użyj polecenia gcloud alpha firestore backups schedules create .

Utwórz codzienny harmonogram tworzenia kopii zapasowych

Aby utworzyć codzienny harmonogram tworzenia kopii zapasowych, ustaw flagę --recurrence na daily :

gcloud alpha 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 kopia zapasowa ma zostać utworzona. Ustaw na (default) dla domyślnej bazy danych.
  • RETENTION_PERIOD : W przypadku daily powtarzania kopii zapasowej ustaw tę wartość na maksymalnie 7 dni ( 7d ). Jeśli ustawisz weekly powtarzanie kopii zapasowej, ustaw tę wartość na maksymalnie 14 tygodni ( 14w ).

Utwórz tygodniowy harmonogram tworzenia kopii zapasowych

Aby utworzyć tygodniowy harmonogram tworzenia kopii zapasowych, ustaw flagę --recurrence na weekly :

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=weekly \
--retention=RETENTION_PERIOD \
--day-of-week=DAY

Zastąp następujące elementy:

  • DATABASE_ID : Identyfikator bazy danych, której kopia zapasowa ma zostać utworzona. Ustaw na (default) dla domyślnej bazy danych.
  • RETENTION_PERIOD : W przypadku weekly powtarzania kopii zapasowej ustaw tę wartość na maksymalnie 14 tygodni ( 14w ).
  • DAY : Dzień tygodnia, w którym należy wykonać kopię zapasową. Ustaw na jedną z następujących opcji:
    • SUN na niedzielę
    • MON na poniedziałek
    • TUE na wtorek
    • WED na środę
    • THU na czwartek
    • FRI na piątek
    • SAT w sobotę

Lista harmonogramów tworzenia kopii zapasowych

Aby wyświetlić listę wszystkich harmonogramów tworzenia kopii zapasowych bazy danych, użyj polecenia gcloud alpha firestore backups schedules list . To polecenie zwraca informacje o wszystkich harmonogramach tworzenia kopii zapasowych.

gcloud alpha firestore backups schedules list \
--database='DATABASE_ID'

Zamień DATABASE_ID na identyfikator bazy danych. Użyj (default) dla domyślnej bazy danych.

Opisz harmonogram tworzenia kopii zapasowych

Aby pobrać informacje o harmonogramie tworzenia kopii zapasowych, użyj polecenia gcloud alpha firestore backups schedules describe :

gcloud alpha firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

Zastąp następujące elementy:

  • DATABASE_ID : Identyfikator bazy danych, której kopia zapasowa ma zostać utworzona. Ustaw na (default) dla domyślnej bazy danych.
  • BACKUP_SCHEDULE_ID : Identyfikator harmonogramu tworzenia kopii zapasowych. Identyfikator każdego harmonogramu tworzenia kopii zapasowych można wyświetlić na liście wszystkich harmonogramów tworzenia kopii zapasowych .

Zaktualizuj harmonogram tworzenia kopii zapasowych

Aby zaktualizować okres przechowywania harmonogramu kopii zapasowych, użyj polecenia gcloud alpha firestore backups schedules update :

gcloud alpha firestore backups schedules update \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
--retention=RETENTION_PERIOD

Zastąp następujące elementy:

  • DATABASE_ID : Identyfikator bazy danych, której kopia zapasowa ma zostać utworzona. Ustaw na (default) dla domyślnej bazy danych.
  • BACKUP_SCHEDULE_ID : Identyfikator harmonogramu tworzenia kopii zapasowych. Identyfikator każdego harmonogramu tworzenia kopii zapasowych można wyświetlić na liście wszystkich harmonogramów tworzenia kopii zapasowych .
  • RETENTION_PERIOD : Jeśli ustawisz daily powtarzanie kopii zapasowej, ustaw tę wartość na maksymalnie 7 dni ( 7d ). Jeśli ustawisz weekly powtarzanie kopii zapasowej, ustaw tę wartość na maksymalnie 14 tygodni ( 14w ).

Usuń harmonogram tworzenia kopii zapasowych

Aby usunąć harmonogram tworzenia kopii zapasowych, użyj polecenia gcloud alpha firestore backups schedules delete :

gcloud alpha firestore backups schedules delete \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

Zastąp następujące elementy:

  • DATABASE_ID : Identyfikator bazy danych, której kopia zapasowa ma zostać utworzona. Ustaw na (default) dla domyślnej bazy danych.
  • BACKUP_SCHEDULE_ID : Identyfikator harmonogramu tworzenia kopii zapasowych. Identyfikator każdego harmonogramu tworzenia kopii zapasowych można wyświetlić na liście wszystkich harmonogramów tworzenia kopii zapasowych .

Należy pamiętać, że usunięcie harmonogramu tworzenia kopii zapasowych nie spowoduje usunięcia kopii zapasowych utworzonych już według tego harmonogramu. Możesz poczekać, aż wygasną po upływie okresu przechowywania, lub ręcznie usunąć kopię zapasową, zobacz usuwanie kopii zapasowej .

Zarządzaj kopiami zapasowymi

Lista kopii zapasowych

Aby wyświetlić listę dostępnych kopii zapasowych, użyj polecenia gcloud alpha firestore backups list :

gcloud alpha firestore backups list \
--format="table(name, database, state)"

Flaga --format="table(name, database, state)" formatuje dane wyjściowe do bardziej czytelnego formatu.

Aby wyświetlić tylko kopie zapasowe z określonej lokalizacji, użyj flagi --location :

gcloud alpha firestore backups list \
--location=LOCATION \
--format="table(name, database, state)"

Zastąp LOCATION nazwą lokalizacji Cloud Firestore.

Opisz kopię zapasową

Aby wyświetlić szczegółowe informacje o kopii zapasowej, użyj polecenia gcloud alpha firestore backups describe :

gcloud alpha firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID
  • LOCATION : Lokalizacja bazy danych.
  • BACKUP_ID : Identyfikator kopii zapasowej. Identyfikator każdej kopii zapasowej można wyświetlić na liście wszystkich kopii zapasowych .

Usuń kopię zapasową

Aby usunąć kopię zapasową, użyj polecenia gcloud alpha firestore backups delete :

gcloud alpha firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID
  • LOCATION : Lokalizacja bazy danych.
  • BACKUP_ID : Identyfikator kopii zapasowej. Identyfikator każdej kopii zapasowej można wyświetlić na liście wszystkich kopii zapasowych .

Przywróć dane z kopii zapasowej bazy danych

Operacja przywracania zapisuje dane z kopii zapasowej w nowej bazie danych Cloud Firestore. Aby rozpocząć operację przywracania, użyj polecenia gcloud alpha firestore databases restore :

gcloud alpha firestore databases restore \
--source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
--destination-database='DATABASE_ID'
  • PROJECT_ID : Twój identyfikator projektu.
  • LOCATION : Lokalizacja kopii zapasowej bazy danych i lokalizacja nowej bazy danych utworzonej dla przywróconych danych.
  • BACKUP_ID : Identyfikator kopii zapasowej. Identyfikator każdej kopii zapasowej można wyświetlić na liście wszystkich kopii zapasowych .
  • DATABASE_ID : Identyfikator bazy danych dla nowej bazy danych. Nie można użyć identyfikatora bazy danych, który jest już używany.

Dane wyjściowe będą zawierać metadata , name i komponenty response :

metadata:
  '@type': type.googleapis.com/google.firestore.admin.v1.RestoreDatabaseMetadata
  backup: projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
  database: projects/PROJECT_ID/databases/DATABASE_ID
  operationState: PROCESSING
  progressPercentage:
    completedWork: '20'
    estimatedWork: '100'
  startTime: '2023-12-06T14:20:17.398325Z'
name: projects/PROJECT_ID/databases/DATABASE_ID/operations/operation_uuid
response:
  '@type': type.googleapis.com/google.firestore.admin.v1.Database
  createTime: '2023-12-06T14:20:17.398325Z'
  name: projects/PROJECT_ID/databases/DATABASE_ID
  ...

Pole metadata zawiera składnik progressPercentage , zawierający szczegółowy szacowany dotychczasowy postęp przywracania, oraz operationState określający ogólny stan przywracania.

Aby ponownie pobrać te informacje, użyj gcloud firestore operations list :

gcloud firestore operations list --database=DATABASE_ID

lub używając pola name z danych wyjściowych opisanych powyżej, za pomocą gcloud firestore operations describe :

gcloud firestore operations describe OPERATION_NAME