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 przypadkudaily
powtarzania kopii zapasowej ustaw tę wartość na maksymalnie 7 dni (7d
). Jeśli ustawiszweekly
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 przypadkuweekly
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 ustawiszdaily
powtarzanie kopii zapasowej, ustaw tę wartość na maksymalnie 7 dni (7d
). Jeśli ustawiszweekly
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