Na tej stronie dowiesz się, jak korzystać z zaplanowanych kopii zapasowych Cloud Firestore funkcji. Używaj kopii zapasowych do ochrony danych przed danymi na poziomie aplikacji spowodowane uszkodzeniem danych lub przypadkowym usunięciem danych.
Kopie zapasowe umożliwiają skonfigurowanie harmonogramów tworzenia kopii zapasowych codziennie lub co tydzień kopii zapasowych określonej bazy danych. Następnie możesz użyć tych kopii zapasowych do przywrócenia do nowej bazy danych.
Informacje o kopiach zapasowych
Kopia zapasowa to spójna kopia bazy danych z określonego momentu. Kopia zapasowa zawiera w danym momencie wszystkie konfiguracje indeksów i danych w odpowiednim czasie. Kopia zapasowa nie zawiera zasad dotyczących czasu życia danych 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 wygasa lub nie usuniesz kopii zapasowej. Usunięcie źródłowej bazy danych nie powoduje nie są automatycznie usuwane powiązane kopie zapasowe.
Cloud Firestore przechowuje metadane związane z kopiami zapasowymi i kopiami zapasowymi harmonogramy powiązane z bazą danych. Cloud Firestore zachowuje te metadane aż do wygaśnięcia lub usunięcia wszystkich kopii zapasowych bazy danych.
Tworzenie ani przechowywanie kopii zapasowych nie ma wpływu na wydajność odczytów ani zapisy w aktywnej bazie danych.
Koszty
Korzystanie z kopii zapasowych jest objęte opłatą za:
- Ilość miejsca wykorzystywanego przez każdą kopię zapasową.
- Za operację przywracania są naliczane opłaty 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 potrzebne do zarządzania kopiami zapasowymi i harmonogramami tworzenia kopii zapasowych, poproś administratora o przyznanie co najmniej 1 z tych funkcji zarządzania tożsamościami i dostępem role:
roles/datastore.owner
: pełny dostęp do bazy danych Cloud FirestorePoniższe role są również dostępne, ale niewidoczne w konsoli Google Cloud Platform. Korzystanie z Google Cloud CLI aby przypisać te role:
roles/datastore.backupsAdmin
: uprawnienia do zapisu i odczytu kopii zapasowychroles/datastore.backupsViewer
: uprawnienia do odczytu kopii zapasowychroles/datastore.backupSchedulesAdmin
: uprawnienia do odczytu i zapisu w harmonogramach tworzenia kopii zapasowychroles/datastore.backupSchedulesViewer
: dostęp z możliwością odczytu do harmonogramów tworzenia kopii zapasowychroles/datastore.restoreAdmin
: uprawnienia do inicjowania operacji przywracania
Tworzenie harmonogramów tworzenia kopii zapasowych i zarządzanie nimi
Przykłady poniżej pokazują, jak skonfigurować harmonogram tworzenia kopii zapasowych. Dla każdej wartości możesz skonfigurować maksymalnie 1 dzienny harmonogram tworzenia kopii zapasowych oraz maksymalnie raz co tydzień w harmonogramie tworzenia kopii zapasowych. Nie można skonfigurować wielu tygodniowych harmonogramów tworzenia kopii zapasowych dla w różne dni tygodnia.
Nie możesz ustawić dokładnej godziny utworzenia kopii zapasowej. Kopie zapasowe są tworzone o o różnych porach każdego dnia. Cotygodniowe kopie zapasowe harmonogramów, możesz skonfigurować dzień tygodnia, w którym zostanie utworzona kopia zapasowa.
Utwórz harmonogram tworzenia kopii zapasowych
Aby utworzyć harmonogram tworzenia kopii zapasowych dla bazy danych, skorzystaj z
gcloud firestore backups schedules create
lub firebase firestore:databases:backups:schedules
.
Utwórz harmonogram codziennego tworzenia kopii zapasowych
gcloud
Aby utworzyć harmonogram codziennego tworzenia kopii zapasowych, ustaw flagę--recurrence
na daily
:
gcloud 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)'
w przypadku domyślnej bazy danych. - RETENTION_PERIOD: ustaw tę wartość na maks. 14 tygodni (
14w
).
wiersz poleceń Firebase
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 kopia zapasowa ma zostać utworzona. Ustaw na
'(default)'
w przypadku domyślnej bazy danych. - RETENTION_PERIOD: ustaw tę wartość na maks. 14 tygodni (
14w
).
Terraform
Aby utworzyć harmonogram codziennego tworzenia kopii zapasowych, utwórz zasóbgoogle_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 kopia zapasowa ma zostać utworzona. Ustaw na
'(default)'
w przypadku domyślnej bazy danych.
Możesz też użyć odwołania do zasobu, aby
Zasób Terraform typu - RETENTION_PERIOD_SECONDS: ustaw wartość w sekundach, po której następuje litera „s”. Maksymalna wartość to
8467200s
(14 tygodni).
google_firestore_database
.
Utwórz cotygodniowy harmonogram tworzenia kopii zapasowych
gcloud
Aby utworzyć cotygodniowy harmonogram tworzenia kopii zapasowych, ustaw flagę--recurrence
na weekly
:
gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=weekly \ --retention=RETENTION_PERIOD \ --day-of-week=DAYZastąp następujące elementy:
- DATABASE_ID: identyfikator bazy danych, której kopia zapasowa ma zostać utworzona. Ustaw na
'(default)'
w przypadku domyślnej bazy danych. - RETENTION_PERIOD: ustaw tę wartość na maks. 14 tygodni (
14w
). - DAY: dzień tygodnia, w którym ma zostać utworzona kopia zapasowa. Ustaw na
jedną z tych wartości:
SUN
na niedzielęMON
na poniedziałekTUE
na wtorekWED
na środęTHU
na czwartekFRI
na piątekSAT
na sobotę
wiersz poleceń Firebase
Aby utworzyć cotygodniowy harmonogram tworzenia kopii zapasowych, ustaw flagę--recurrence
na WEEKLY
:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'WEEKLY' \ --retention RETENTION_PERIOD --day-of-week DAYZastąp następujące elementy:
- DATABASE_ID: identyfikator bazy danych, której kopia zapasowa ma zostać utworzona. Ustaw na
'(default)'
w przypadku domyślnej bazy danych. - RETENTION_PERIOD: ustaw tę wartość na maks. 14 tygodni (
14w
). - DAY: dzień tygodnia, w którym ma zostać utworzona kopia zapasowa. Ustaw na
jedną z tych wartości:
SUNDAY
na niedzielęMONDAY
na poniedziałekTUESDAY
na wtorekWEDNESDAY
na środęTHURSDAY
na czwartekFRIDAY
na piątekSATURDAY
na sobotę
Terraform
Aby utworzyć cotygodniowy harmonogram tworzenia kopii zapasowych, utwórz zasóbgoogle_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 kopia zapasowa ma zostać utworzona. Ustaw na
'(default)'
w przypadku domyślnej bazy danych.
Możesz też użyć odwołania do zasobu, aby
Zasób Terraform typu - RETENTION_PERIOD_SECONDS: ustaw wartość w sekundach, po której następuje litera „s”. Maksymalna wartość to
8467200s
(14 tygodni). - DAY: dzień tygodnia, w którym ma zostać utworzona kopia zapasowa. Ustaw na
jedną z tych wartości:
SUNDAY
na niedzielęMONDAY
na poniedziałekTUESDAY
na wtorekWEDNESDAY
na środęTHURSDAY
na czwartekFRIDAY
na piątekSATURDAY
na sobotę
google_firestore_database
.
Wyświetl listę harmonogramów tworzenia kopii zapasowych
Aby wyświetlić listę wszystkich harmonogramów tworzenia kopii zapasowych bazy danych, użyj jednej z tych metod:
gcloud
Użyj poleceniagcloud firestore backups schedules list
.
gcloud firestore backups schedules list \ --database='DATABASE_ID'Zastąp DATABASE_ID identyfikatorem bazy danych. Używaj
'(default)'
w przypadku domyślnej bazy danych.
wiersz poleceń Firebase
Użyj poleceniafirebase firestore:backups:schedules:list
.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'Zastąp DATABASE_ID identyfikatorem bazy danych. Używaj
'(default)'
w przypadku domyślnej bazy danych.
Opisz harmonogram tworzenia kopii zapasowych
Aby pobrać informacje o harmonogramie tworzenia kopii zapasowych, użyj jednej z tych metod:
gcloud
Użyj Poleceniegcloud firestore backups schedules describe
:
gcloud firestore backups schedules describe \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_IDZastąp następujące elementy:
- DATABASE_ID: identyfikator bazy danych, której kopia zapasowa ma zostać utworzona. Ustaw na
'(default)'
w przypadku domyślnej bazy danych. - BACKUP_SCHEDULE_ID: identyfikator harmonogramu tworzenia kopii zapasowych. Ty identyfikator każdego harmonogramu tworzenia kopii zapasowych można wyświetlić, wyświetl 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:
gcloud
Użyj poleceniagcloud firestore backups schedules update
:
gcloud firestore backups schedules update \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID \ --retention=RETENTION_PERIODZastąp następujące elementy:
- DATABASE_ID: identyfikator bazy danych, której kopia zapasowa ma zostać utworzona. Ustaw na
'(default)'
w przypadku domyślnej bazy danych. - BACKUP_SCHEDULE_ID: identyfikator harmonogramu tworzenia kopii zapasowych. Ty identyfikator każdego harmonogramu tworzenia kopii zapasowych można wyświetlić, wyświetl listę wszystkich harmonogramów tworzenia kopii zapasowych
- RETENTION_PERIOD: ustaw tę wartość na maks. 14 tygodni (
14w
).
wiersz poleceń Firebase
Użyj poleceniafirebase firestore:backups:schedules:update
:
firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIODZastąp następujące elementy:
- BACKUP_SCHEDULE: pełna nazwa zasobu harmonogramu tworzenia kopii zapasowych. Ty możesz wyświetlić nazwę każdego harmonogramu tworzenia kopii zapasowych, gdy wyświetl listę wszystkich harmonogramów tworzenia kopii zapasowych
- RETENTION_PERIOD: ustaw tę wartość na maks. 14 tygodni (
14w
).
Możesz zaktualizować okres przechowywania harmonogramu tworzenia kopii zapasowych, ale nie możesz zaktualizować jego powtarzania. Jeśli potrzebujesz harmonogramu tworzenia kopii zapasowych z inną powtarzaniem, usuń stary harmonogram tworzenia kopii zapasowych, jeśli nie jest już potrzebny, i utwórz nowy harmonogram tworzenia kopii zapasowych z odpowiednią częstotliwością.
Usuwanie harmonogramu tworzenia kopii zapasowych
Aby usunąć harmonogram tworzenia kopii zapasowych, użyj jednej z tych metod:
gcloud
Użyj poleceniagcloud firestore backups schedules delete
:
gcloud firestore backups schedules delete \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_IDZastąp następujące elementy:
- DATABASE_ID: identyfikator bazy danych, której kopia zapasowa ma zostać utworzona. Ustaw na
'(default)'
w przypadku domyślnej bazy danych. - BACKUP_SCHEDULE_ID: identyfikator harmonogramu tworzenia kopii zapasowych. Ty identyfikator każdego harmonogramu tworzenia kopii zapasowych można wyświetlić, wyświetl listę wszystkich harmonogramów tworzenia kopii zapasowych
wiersz poleceń Firebase
Użyj poleceniafirebase firestore:backups:schedules:delete
:
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULEZastąp następujące elementy:
- BACKUP_SCHEDULE: pełna nazwa zasobu harmonogramu tworzenia kopii zapasowych. Ty możesz wyświetlić nazwę każdego harmonogramu tworzenia kopii zapasowych, gdy wyświetl listę wszystkich harmonogramów tworzenia kopii zapasowych
Pamiętaj, że usunięcie harmonogramu tworzenia kopii zapasowych nie spowoduje usunięcia kopii zapasowych, które zostały już utworzone przez w tym harmonogramie. Możesz zaczekać, aż wygaśnie po okresie przechowywania. aby ręcznie usunąć kopię zapasową, przeczytaj artykuł 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:
gcloud
Użyj poleceniagcloud firestore backups list
:
gcloud firestore backups list \ --format="table(name, database, state)"Flaga
--format="table(name, database, state)"
formatuje dane wyjściowe jako
bardziej czytelny format.
Aby wyświetlić tylko kopie zapasowe z konkretnej lokalizacji, użyj flagi --location
:
gcloud firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"Zastąp
LOCATION
nazwą Cloud Firestore
lokalizacji.
wiersz poleceń Firebase
Użyj poleceniafirebase firestore:backups:list
:
firebase firestore:backups:listAby wyświetlić tylko kopie zapasowe z określonej lokalizacji, użyj flagi
--location
:
firebase firestore:backups:list \ --location=LOCATIONZastąp
LOCATION
nazwą Cloud Firestore
lokalizacji.
Opisz kopię zapasową
Aby wyświetlić szczegółowe informacje o kopii zapasowej, użyj jednej z tych metod:
gcloud
Użyj poleceniagcloud firestore backups describe
:
gcloud firestore backups describe \ --location=LOCATION \ --backup=BACKUP_IDZastąp następujące elementy:
- LOCATION: lokalizacja bazy danych.
- BACKUP_ID: identyfikator kopii zapasowej. Ty identyfikator każdej kopii zapasowej możesz sprawdzić, gdy wyświetlisz listę wszystkich kopii zapasowych.
wiersz poleceń Firebase
Użyj poleceniafirebase firestore:backups:get
:
firebase firestore:backups:get BACKUPZastąp następujące elementy:
- BACKUP: pełna nazwa zasobu kopii zapasowej. Nazwę każdej kopii zapasowej możesz sprawdzić, gdy wyświetlisz listę wszystkich kopii zapasowych.
Usuń kopię zapasową
gcloud
Użyj poleceniagcloud firestore backups delete
:
gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_IDZastąp następujące elementy:
- LOCATION: lokalizacja bazy danych.
- BACKUP_ID: identyfikator kopii zapasowej. Ty identyfikator każdej kopii zapasowej możesz sprawdzić, gdy wyświetlisz listę wszystkich kopii zapasowych.
wiersz poleceń Firebase
Użyj poleceniafirebase firestore:backups:delete
:
firebase firestore:backups:delete \ BACKUPZastąp następujące elementy:
- BACKUP: pełna nazwa zasobu kopii zapasowej. Możesz wyświetlić nazwę każdej kopii zapasowej gdy wyświetlisz wszystkie kopie zapasowe.
Przywracanie danych z kopii zapasowej bazy danych
Operacja przywracania zapisuje dane z kopii zapasowej w nowej usłudze Cloud Firestore w bazie danych.
Aby rozpocząć operację przywracania, użyj jednej z tych metod:
gcloud
Użyj poleceniagcloud firestore databases restore
:
gcloud firestore databases restore \ --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \ --destination-database='DATABASE_ID'Zastąp następujące elementy:
- PROJECT_ID: 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żesz sprawdzić, gdy wyświetlisz listę wszystkich kopii zapasowych.
- DATABASE_ID: identyfikator nowej bazy danych. w bazie danych. Nie możesz użyć identyfikatora bazy danych, który jest już używany.
metadata
, name
i 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 komponent progressPercentage
ze szczegółowymi informacjami o szacowanym postępie przywracania do tej pory oraz pole operationState
określające ogólny stan przywracania.
Aby ponownie odzyskać te informacje, użyj polecenia gcloud firestore operations list
:
gcloud firestore operations list --database=DATABASE_IDlub używając pola
name
z opisanego powyżej wyniku za pomocą polecenia gcloud firestore operations describe
:
gcloud firestore operations describe OPERATION_NAME
wiersz poleceń Firebase
Użyj poleceniafirebase firestore:databases:restore
:
firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'Zastąp następujące elementy:
- BACKUP: pełna nazwa zasobu kopii zapasowej. Nazwę każdej kopii zapasowej możesz sprawdzić, gdy wyświetlisz listę wszystkich kopii zapasowych.
- DATABASE_ID: identyfikator nowej bazy danych. w bazie danych. Nie możesz użyć identyfikatora bazy danych, który jest już używany.