Bu sayfada, planlanmış Cloud Firestore yedeklemenin nasıl kullanılacağı açıklanmaktadır. özelliğini kullanabilirsiniz. Verilerinizi uygulama düzeyindeki verilerden korumak için yedekleri kullanın verilerin bozulmasına veya yanlışlıkla silinmesine neden olabilir.
Yedeklemeler, yedekleme programlarını günlük veya haftalık olarak çalışacak şekilde yapılandırmanıza olanak tanır. yedekleridir. Ardından bu yedekleri kullanarak yeni bir veritabanına aktarmanızı sağlar.
Yedeklemeler hakkında
Yedek, veritabanının belirli bir zamanda tutarlı bir kopyasıdır. Yedek, bu noktadaki tüm veri ve dizin yapılandırmalarını içerir gerekiyor. Yedekler, veritabanı geçerlilik süresi politikaları içermez. Yedekler, kaynak veritabanıyla aynı konumda bulunur.
Yedeklerin saklama süresi yapılandırılabilir ve saklama süresi dolana kadar depolanır süresi dolana kadar veya yedek silene kadar geçerli olur. Kaynak veritabanının silinmesi, ilgili yedekleri otomatik olarak silmez.
Cloud Firestore, yedekleme ve yedeklemeyle ilgili meta verileri depolar bir zaman çizelgesi de oluşturabilirsiniz. Cloud Firestore bu meta verileri saklar Bu işlem, veritabanının tüm yedeklerinin süresi dolana veya silinene kadar devam eder.
Yedeklerin oluşturulması veya saklanması, okuma ya da canlı veritabanınıza yazar.
Maliyetler
Yedekleri kullandığınızda aşağıdakiler için ücret ödersiniz:
- Her bir yedeklemenin kullandığı depolama alanı miktarı.
- Geri yükleme işlemi için yedeğin boyutuna göre ücretlendirilirsiniz.
Daha ayrıntılı bilgi ve kesin ücretler için Fiyatlandırma sayfasını inceleyin.
Başlamadan önce
Bu özellik için Blaze fiyatlandırma planı gerekir.Gerekli roller
Yedeklemeleri ve yedekleme planlarını yönetmek üzere ihtiyaç duyduğunuz izinleri almak için yöneticinizden size aşağıdaki Kimlik ve Erişim Yönetimi hizmetlerinden birini veya daha fazlasını vermesini isteyin. roller:
roles/datastore.owner
: Cloud Firestore veritabanına tam erişimAşağıdaki roller de kullanılabilir ancak Google Cloud konsolunda görünmez. Google Cloud CLI kullanın şu rolleri atamak için:
roles/datastore.backupsAdmin
: Yedeklere okuma ve yazma erişimiroles/datastore.backupsViewer
: Yedeklere okuma erişimiroles/datastore.backupSchedulesAdmin
: Yedekleme programlarına okuma ve yazma erişimiroles/datastore.backupSchedulesViewer
: Yedekleme programlarına okuma erişimiroles/datastore.restoreAdmin
: Geri yükleme işlemlerini başlatma izinleri
Yedekleme planları oluşturun ve yönetin
Aşağıdaki örneklerde, yedekleme planının nasıl ayarlanacağı gösterilmektedir. Her bir günlük bir yedekleme programı ve en fazla bir haftalık yedekleme programı. Şu hesap için birden fazla haftalık yedekleme planı yapılandıramazsınız: haftanın farklı günlerinde.
Yedeklemenin günün tam saatini yapılandıramazsınız. Yedeklerin çekildiği tarih: her gün farklı zamanlar. Haftalık yedekleme için yedeklemesini almak için haftanın gününü yapılandırabilirsiniz.
Yedekleme planı oluştur
Bir veritabanının yedekleme planını oluşturmak için
gcloud firestore backups schedules create
komutunu veya firebase firestore:databases:backups:schedules
komutunu kullanabilirsiniz.
Günlük yedekleme programı oluştur
gcloud
Günlük yedekleme programı oluşturmak için--recurrence
işaretini daily
olarak ayarlayın:
gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=daily \ --retention=RETENTION_PERIOD
Aşağıdakini değiştirin:
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
. - RETENTION_PERIOD: Bu aralığı en fazla 14 haftalık bir değere ayarlayın (
14w
).
Firebase CLI
Günlük yedekleme programı oluşturmak için--recurrence
işaretini DAILY
olarak ayarlayın:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'DAILY' \ --retention RETENTION_PERIOD
Aşağıdakini değiştirin:
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
. - RETENTION_PERIOD: Bu aralığı en fazla 14 haftalık bir değere ayarlayın (
14w
).
Terraform
Günlük yedekleme programı oluşturmak için birgoogle_firestore_backup_schedule
kaynağı oluşturun.
resource "google_firestore_backup_schedule" "daily-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS daily_recurrence {} }
Aşağıdakini değiştirin:
- PROJECT_ID: Projenin kimliği.
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
.
Ayrıca bir kaynak referansı
- RETENTION_PERIOD_SECONDS: Bunu saniye cinsinden bir değere ve ardından "s"ye ayarlayın. Maksimum değer
8467200s
(14 hafta) olmalıdır.
google_firestore_database
türündeki Terraform kaynağı.
Haftalık yedekleme programı oluşturma
gcloud
Haftalık yedekleme planı oluşturmak için--recurrence
işaretini weekly
olarak ayarlayın:
gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=weekly \ --retention=RETENTION_PERIOD \ --day-of-week=DAYAşağıdakileri değiştirin:
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
. - RETENTION_PERIOD: Bu aralığı en fazla 14 haftalık bir değere ayarlayın (
14w
). - DAY: Yedeğin alınacağı gün. Şu değere ayarla:
şunlardan biri:
- Pazar için
SUN
- Pazartesi için
MON
- Salı için
TUE
- Çarşamba için
WED
- Perşembe için
THU
- Cuma için
FRI
- Cumartesi için
SAT
- Pazar için
Firebase CLI
Haftalık yedekleme planı oluşturmak için--recurrence
işaretini WEEKLY
olarak ayarlayın:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'WEEKLY' \ --retention RETENTION_PERIOD --day-of-week DAYAşağıdakileri değiştirin:
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
. - RETENTION_PERIOD: Bu aralığı en fazla 14 haftalık bir değere ayarlayın (
14w
). - DAY: Yedeğin alınacağı gün. Şu değere ayarla:
şunlardan biri:
- Pazar için
SUNDAY
- Pazartesi için
MONDAY
- Salı için
TUESDAY
- Çarşamba için
WEDNESDAY
- Perşembe için
THURSDAY
- Cuma için
FRIDAY
- Cumartesi için
SATURDAY
- Pazar için
Terraform
Haftalık yedekleme programı oluşturmak için birgoogle_firestore_backup_schedule
kaynağı oluşturun.
resource "google_firestore_backup_schedule" "weekly-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS weekly_recurrence { day = DAY } }
Aşağıdakini değiştirin:
- PROJECT_ID: Projenin kimliği.
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
.
Ayrıca bir kaynak referansı
- RETENTION_PERIOD_SECONDS: Bunu saniye cinsinden bir değere ve ardından "s"ye ayarlayın. Maksimum değer
8467200s
(14 hafta) olmalıdır. - DAY: Yedeğin alınacağı gün. Şu değere ayarla:
şunlardan biri:
- Pazar için
SUNDAY
- Pazartesi için
MONDAY
- Salı için
TUESDAY
- Çarşamba için
WEDNESDAY
- Perşembe için
THURSDAY
- Cuma için
FRIDAY
- Cumartesi için
SATURDAY
- Pazar için
google_firestore_database
türündeki Terraform kaynağı.
Yedekleme programlarını listeleyin
Bir veritabanına ait tüm yedekleme programlarını listelemek için aşağıdaki yöntemlerden birini kullanın:
gcloud
gcloud firestore backups schedules list
komutunu kullanın.
gcloud firestore backups schedules list \ --database='DATABASE_ID'. DATABASE_ID değerini veritabanının kimliğiyle değiştirin. Tekliflerinizi otomatikleştirmek ve optimize etmek için Varsayılan veritabanı için
'(default)'
.
Firebase CLI
firebase firestore:backups:schedules:list
komutunu kullanın.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'. DATABASE_ID değerini veritabanının kimliğiyle değiştirin. Tekliflerinizi otomatikleştirmek ve optimize etmek için Varsayılan veritabanı için
'(default)'
.
Yedekleme programını açıkla
Yedekleme planlamasıyla ilgili bilgileri almak için aşağıdaki yöntemlerden birini kullanın:
gcloud
Şunu kullanın:gcloud firestore backups schedules describe
komutu:
gcloud firestore backups schedules describe \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_IDAşağıdakileri değiştirin:
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
. - BACKUP_SCHEDULE_ID: Yedekleme planının kimliği. Siz her yedekleme planının kimliğini görüntüleyebilir. tüm yedekleme programlarını listeleyin.
Yedekleme planını güncelleme
Yedekleme planının saklama süresini güncellemek için aşağıdaki yöntemlerden birini kullanın:
gcloud
gcloud firestore backups schedules update
komutunu kullanın:
gcloud firestore backups schedules update \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID \ --retention=RETENTION_PERIODAşağıdakileri değiştirin:
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
. - BACKUP_SCHEDULE_ID: Yedekleme planının kimliği. Siz her yedekleme planının kimliğini görüntüleyebilir. tüm yedekleme programlarını listeleyin.
- RETENTION_PERIOD: Bu aralığı en fazla 14 haftalık bir değere ayarlayın (
14w
).
Firebase CLI
firebase firestore:backups:schedules:update
komutunu kullanın:
firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIODAşağıdakileri değiştirin:
- BACKUP_SCHEDULE: Yedekleme planının tam kaynak adı. Siz her yedekleme programının adını görüntüleyebilir. tüm yedekleme programlarını listeleyin.
- RETENTION_PERIOD: Bu aralığı en fazla 14 haftalık bir değere ayarlayın (
14w
).
Bir yedekleme planının saklama süresini güncelleyebilirsiniz ancak yinelenme durumunu güncelleyemezsiniz. Farklı bir yinelenmeye sahip bir yedekleme planına ihtiyacınız varsa artık gerekli değilse eski yedekleme planınızı silin ve istediğiniz yineleme ile yeni bir yedekleme programı oluşturun.
Yedekleme programını silme
Bir yedekleme programını silmek için aşağıdaki yöntemlerden birini kullanın:
gcloud
gcloud firestore backups schedules delete
komutunu kullanın:
gcloud firestore backups schedules delete \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_IDAşağıdakileri değiştirin:
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
. - BACKUP_SCHEDULE_ID: Yedekleme planının kimliği. Siz her yedekleme planının kimliğini görüntüleyebilir. tüm yedekleme programlarını listeleyin.
Firebase CLI
firebase firestore:backups:schedules:delete
komutunu kullanın:
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULEAşağıdakileri değiştirin:
- BACKUP_SCHEDULE: Yedekleme planının tam kaynak adı. Siz her yedekleme programının adını görüntüleyebilir. tüm yedekleme programlarını listeleyin.
Bir yedekleme planını silmenin, bu çizelgeyi hazırlar. Saklama süresi sona erdiğinde bunların süresinin dolmasını bekleyebilir veya bir yedeği manuel olarak silmek istiyorsanız yedeği silme bölümünü inceleyin.
Yedekleri yönet
Yedekleri listeleme
Kullanılabilir yedekleri listelemek için aşağıdaki yöntemlerden birini kullanın:
gcloud
gcloud firestore backups list
komutunu kullanın:
gcloud firestore backups list \ --format="table(name, database, state)"
--format="table(name, database, state)"
işareti, çıkışı
bir hale getirebilirsiniz.
Yalnızca belirli bir konumdaki yedekleri listelemek için --location
işaretini kullanın:
gcloud firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"
LOCATION
öğesini bir Cloud Firestore adıyla değiştirin
konum.
Firebase CLI
firebase firestore:backups:list
komutunu kullanın:
firebase firestore:backups:listYalnızca belirli bir konumdaki yedekleri listelemek için
--location
işaretini kullanın:
firebase firestore:backups:list \ --location=LOCATION
LOCATION
öğesini bir Cloud Firestore adıyla değiştirin
konum.
Yedeklemeyi açıklayın
Bir yedeklemeyle ilgili ayrıntıları görüntülemek için aşağıdaki yöntemlerden birini kullanın:
gcloud
gcloud firestore backups describe
komutunu kullanın:
gcloud firestore backups describe \ --location=LOCATION \ --backup=BACKUP_IDAşağıdakileri değiştirin:
- LOCATION: Veritabanının konumu.
- BACKUP_ID: Bir yedeğin kimliği. Siz tüm yedekleri listelediğinizde her bir yedeğin kimliğini görüntüleyebilir.
Firebase CLI
firebase firestore:backups:get
komutunu kullanın:
firebase firestore:backups:get BACKUPAşağıdakileri değiştirin:
- BACKUP: Bir yedeğin tam kaynak adı. Tüm yedekleri listelediğinizde her bir yedeğin adını görebilirsiniz.
Yedeği sil
gcloud
gcloud firestore backups delete
komutunu kullanın:
gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_IDAşağıdakileri değiştirin:
- LOCATION: Veritabanının konumu.
- BACKUP_ID: Bir yedeğin kimliği. Siz tüm yedekleri listelediğinizde her bir yedeğin kimliğini görüntüleyebilir.
Firebase CLI
firebase firestore:backups:delete
komutunu kullanın:
firebase firestore:backups:delete \ BACKUPAşağıdakileri değiştirin:
- BACKUP: Bir yedeğin tam kaynak adı. Her yedeğin adını görüntüleyebilirsiniz tüm yedekleri listelediğinizde.
Verileri veritabanı yedeğinden geri yükleme
Geri yükleme işlemi, verileri yedekten yeni bir Cloud Firestore cihazına yazar
Geri yükleme işlemini başlatmak için aşağıdaki yöntemlerden birini kullanın:
gcloud
gcloud firestore databases restore
komutunu kullanın:
gcloud firestore databases restore \ --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \ --destination-database='DATABASE_ID'Aşağıdakileri değiştirin:
- PROJECT_ID: Proje kimliğiniz.
- LOCATION: Veritabanı yedeğinin konumu ve geri yüklenen veriler için oluşturulan yeni veritabanının konumu.
- BACKUP_ID: Bir yedeğin kimliği. Tüm yedekleri listelediğinizde her bir yedeğin kimliğini görüntüleyebilirsiniz.
- DATABASE_ID: Yeni Halihazırda kullanımda olan bir veritabanı kimliğini kullanamazsınız.
metadata
, name
ve response
bileşenleri yer alır:
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 ...
metadata
alanı, geri yüklemenin şimdiye kadarki tahmini ilerleme durumunu ayrıntılı şekilde gösteren bir progressPercentage
bileşeni ve geri yüklemenin genel durumunu belirten bir operationState
içerir.
Bu bilgileri tekrar almak için gcloud firestore operations list
işlevini kullanın:
gcloud firestore operations list --database=DATABASE_IDveya yukarıda açıklanan çıkıştaki
name
alanını kullanarak gcloud firestore operations describe
ile:
gcloud firestore operations describe OPERATION_NAME
Firebase CLI
firebase firestore:databases:restore
komutunu kullanın:
firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'Aşağıdakileri değiştirin:
- BACKUP: Bir yedeğin tam kaynak adı. Tüm yedekleri listelediğinizde her bir yedeğin adını görebilirsiniz.
- DATABASE_ID: Yeni Halihazırda kullanımda olan bir veritabanı kimliğini kullanamazsınız.