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, verileri yeni bir veritabanına geri yüklemek için bu yedekleri kullanabilirsiniz.
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. Yedekleme, veritabanı yaşam süresi politikalarını 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ı silindiğinde, ilgili yedeklemeler otomatik olarak silinmez.
Cloud Firestore, yedekleme ve yedeklemeyle ilgili meta verileri depolar bir zaman çizelgesi de oluşturabilirsiniz. Cloud Firestore, veritabanının tüm yedeklerinin süresi dolana veya silinene kadar bu meta verileri saklar.
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 fazla bilgi ve tam ücretler için Fiyatlandırma sayfasına bakın.
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. Yedeklemeler her gün farklı zamanlarda alınır. Haftalık yedekleme planları için yedekleme yapılacak günü yapılandırabilirsiniz.
Yedekleme programı oluşturma
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 planı 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 değeri 14 haftaya kadar bir değere (
14w
) ayarlayın.
Firebase CLI
Günlük yedekleme planı 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 planı 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)'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=DAY
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Şu değere ayarla:
Varsayılan veritabanı için
'(default)'
. - RETENTION_PERIOD: Bu değeri 14 haftaya kadar bir değere (
14w
) ayarlayın. - DAY: Yedeklemenin alınacağı haftanın 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 DAY
- 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 planı 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. Varsayılan veritabanı için
'(default)'
olarak ayarlayın. - 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 bir Terraform kaynağına kaynak referansı da kullanabilirsiniz.
Yedekleme planlarını listeleme
Bir veritabanının tüm yedekleme planları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'
'(default)'
değerini kullanın.
Firebase CLI
firebase firestore:backups:schedules:list
komutunu kullanın.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'
'(default)'
.
Yedekleme programını açıkla
Yedekleme planlamasıyla ilgili bilgileri almak için aşağıdaki yöntemlerden birini kullanın:
gcloud
gcloud firestore backups schedules describe
komutunu kullanın:
gcloud firestore backups schedules describe \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
- DATABASE_ID: Yedeklenecek veritabanının kimliği. Varsayılan veritabanı için
'(default)'
olarak ayarlayın. - 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_PERIOD
- 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_PERIOD
- BACKUP_SCHEDULE: Yedekleme planının tam kaynak adı. Tüm yedekleme planlarını listelediğinizde her yedekleme planının adını görüntüleyebilirsiniz.
- 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_ID
- 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_SCHEDULE
- BACKUP_SCHEDULE: Yedekleme planının tam kaynak adı. Tüm yedekleme planlarını listelediğinizde her yedekleme planının adını görüntüleyebilirsiniz.
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
yerine Cloud Firestore adını girin
konum.
Firebase CLI
firebase firestore:backups:list
komutunu kullanın:
firebase firestore:backups:list
--location
işaretini kullanın:
firebase firestore:backups:list \ --location=LOCATION
LOCATION
yerine bir Cloud Firestore konumunun adını yazın.
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_ID
- 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 BACKUP
- BACKUP: Bir yedeğin tam kaynak adı. Tüm yedeklemeleri listelediğinizde her yedeklemenin adını görüntüleyebilirsiniz.
Yedeği sil
gcloud
gcloud firestore backups delete
komutunu kullanın:
gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_ID
- 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 \ BACKUP
- BACKUP: Bir yedeğin tam kaynak adı. Her yedeğin adını görüntüleyebilirsiniz tüm yedekleri listelediğinizde.
Veritabanı yedeğinden veri 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'
- 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 veritabanı için veritabanı kimliği. Halihazırda kullanımda olan bir veritabanı kimliğini kullanamazsınız.
metadata
, name
ve response
bileşenlerini içerir:
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ında, geri yüklemenin şimdiye kadarki tahmini ilerleme durumunu ayrıntılı olarak gösteren bir progressPercentage
bileşeni ve geri yüklemenin genel durumunu belirten bir operationState
bulunur.
Bu bilgileri tekrar almak için gcloud firestore operations list
işlevini kullanın:
gcloud firestore operations list --database=DATABASE_ID
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'
- BACKUP: Yedeklemenin 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.