Bu sayfada, Cloud Firestore planlı yedekleme özelliğinin nasıl kullanılacağı açıklanmaktadır. Verilerinizi uygulama düzeyinde veri bozulmasına veya yanlışlıkla veri silinmesine karşı korumak için yedeklemeleri kullanın.
Yedeklemeler, yedekleme programlarını yapılandırarak belirtilen veritabanının günlük veya haftalık yedeklerini almanıza olanak tanır. Ardından, verileri yeni bir veritabanına geri yüklemek için bu yedeklerini kullanabilirsiniz.
Yedeklemeler hakkında
Yedek, veritabanının belirli bir zamandaki tutarlı bir kopyasıdır. Yedekleme, o andaki tüm veri ve dizin yapılandırmalarını içerir. Yedekleme, veritabanı yaşam süresi politikalarını içermez. Yedek, kaynak veritabanıyla aynı konumda bulunur.
Yedeklerin yapılandırılabilir bir saklama süresi vardır ve yedekler, saklama süresi sona erene veya yedeklemeyi silene kadar saklanır. Kaynak veritabanı silindiğinde, ilgili yedeklemeler otomatik olarak silinmez.
Cloud Firestore, bir veritabanıyla ilgili yedekler ve yedek programlarıyla ilgili meta verileri depolar. Cloud Firestore, veritabanının tüm yedeklerinin süresi dolana veya silinene kadar bu meta verileri saklar.
Yedekleme oluşturmak veya saklamak, canlı veritabanınızdaki okuma veya yazma işlemlerinin performansını etkilemez.
Maliyetler
Yedekleme hizmetlerini kullandığınızda aşağıdakiler için ücretlendirilirsiniz:
- Her yedeğin 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.Zorunlu roller
Yedeklemeleri ve yedekleme planlarını yönetmek için gereken izinleri almak üzere yöneticinizden aşağıdaki Kimlik ve Erişim Yönetimi rollerinden birini veya daha fazlasını vermelerini isteyin:
roles/datastore.owner
: Cloud Firestore veritabanına tam erişimAşağıdaki roller de kullanılabilir ancak Google Cloud Console'da gösterilmez. Aşağıdaki rolleri atamak için Google Cloud CLI simgesini kullanın:
roles/datastore.backupsAdmin
: Yedeklemelere okuma ve yazma erişimiroles/datastore.backupsViewer
: Yedeklemelere okuma erişimiroles/datastore.backupSchedulesAdmin
: Yedekleme planlarına okuma ve yazma erişimiroles/datastore.backupSchedulesViewer
: Yedekleme planlarına okuma erişimiroles/datastore.restoreAdmin
: Geri yükleme işlemlerini başlatma izinleri
Yedekleme planları oluşturma ve yönetme
Aşağıdaki örneklerde, yedek programın nasıl oluşturulacağı gösterilmektedir. Her veritabanı için en fazla bir günlük yedekleme programı ve en fazla bir haftalık yedekleme programı yapılandırabilirsiniz. Haftanın farklı günleri için birden fazla haftalık yedekleme programı yapılandıramazsınız.
Yedeklemenin 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
Yedekleme planı oluşturmak için aşağıdaki araçlardan birini kullanın.
Günlük yedekleme programı oluşturma
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda, yedekleme planının olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Afet Kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
- Günlük onay kutusunu işaretleyin, saklama süresini ayarlayın ve Kaydet'i tıklayın.
gcloud
Bir veritabanı için yedekleme planı oluşturmak üzeregcloud firestore backups schedules create
komutunu kullanın.
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. Varsayılan veritabanı için
'(default)'
olarak ayarlayın. - RETENTION_PERIOD: Bu değeri 14 haftaya (
14w
) kadar bir değere ayarlayın.
Firebase CLI
Bir veritabanı için yedekleme planı oluşturmak üzere veyafirebase firestore:databases:backups:schedules
komutunu kullanın.
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. Varsayılan veritabanı için
'(default)'
olarak ayarlayın. - RETENTION_PERIOD: Bu değeri 14 haftaya (
14w
) kadar bir değere ayarlayın.
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. Varsayılan veritabanı için
'(default)'
olarak ayarlayın. - RETENTION_PERIOD_SECONDS: Bu değeri saniye cinsinden bir değere ve ardından "s" karakterine ayarlayın. Maksimum değer
8467200s
(14 hafta)'dır.
google_firestore_database
türündeki bir Terraform kaynağına kaynak referansı da kullanabilirsiniz.
Haftalık yedekleme programı oluşturma
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda, yedekleme planının olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Afet Kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
- Haftalık onay kutusunu işaretleyin, yedek gün seçin, saklama süresini ayarlayın ve Kaydet'i tıklayın.
gcloud
Haftalık yedekleme programı 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. Varsayılan veritabanı için
'(default)'
olarak ayarlayın. - RETENTION_PERIOD: Bu değeri 14 haftaya (
14w
) kadar bir değere ayarlayın. - DAY: Yedeklemenin alınacağı haftanın günü. Aşağıdakilerden birine ayarlayın:
- 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 programı 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. Varsayılan veritabanı için
'(default)'
olarak ayarlayın. - RETENTION_PERIOD: Bu değeri 14 haftaya kadar bir değere (
14w
) ayarlayın. - DAY: Yedeklemenin alınacağı haftanın günü. Aşağıdakilerden birine ayarlayın:
- 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: Bu değeri saniye cinsinden bir değere ve ardından "s" karakterine ayarlayın. Maksimum değer
8467200s
(14 hafta)'dır. - DAY: Yedeklemenin alınacağı haftanın günü. Aşağıdakilerden birine ayarlayın:
- 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:
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda, yedekleme planının olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Olağanüstü durum kurtarma sayfası açılır. Bu sayfada yedekleme programları açıklanmakta ve mevcut yedekler listelenmektedir.
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)'
değerini kullanın.
Yedekleme planını açıklama
Yedekleme planıyla ilgili bilgileri almak için aşağıdaki yöntemlerden birini kullanın:
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda, yedekleme planının olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Olağanüstü durum kurtarma sayfası açılır. Bu sayfada yedekleme programları açıklanmakta ve mevcut yedekler listelenmektedir.
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 planlamasının kimliği. Tüm yedek programları listelediğinizde her yedek programın kimliğini görüntüleyebilirsiniz.
Yedekleme planını güncelleme
Yedek planın saklama süresini güncellemek için aşağıdaki yöntemlerden birini kullanın:
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Afet Kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
- Yedekleme programı ayarlarını düzenleyin ve Kaydet'i tıklayı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. Varsayılan veritabanı için
'(default)'
olarak ayarlayın. - BACKUP_SCHEDULE_ID: Yedekleme planlamasının kimliği. Tüm yedek programları listelediğinizde her yedek programın kimliğini görüntüleyebilirsiniz.
- RETENTION_PERIOD: Bu değeri 14 haftaya (
14w
) kadar bir değere ayarlayın.
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 değeri 14 haftaya (
14w
) kadar bir değere ayarlayın.
Yedekleme planının saklama süresini güncelleyebilirsiniz ancak tekrarlama sıklığını güncelleyemezsiniz. Farklı bir yineleme içeren bir yedekleme planına ihtiyacınız varsa artık gerekli olmayan eski yedekleme planını silin ve istediğiniz yinelemeyi içeren yeni bir yedekleme planı oluşturun.
Yedekleme planını silme
Yedekleme planını silmek için aşağıdaki yöntemlerden birini kullanın:
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda, yedekleme planının olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Afet Kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
- Yedekleme programı ayarlarını düzenleyin ve Kaydet'i tıklayı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. Varsayılan veritabanı için
'(default)'
olarak ayarlayın. - BACKUP_SCHEDULE_ID: Yedekleme planlamasının kimliği. Tüm yedek programları listelediğinizde her yedek programın kimliğini görüntüleyebilirsiniz.
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ı sildiğinizde, bu plan tarafından oluşturulmuş yedeklemelerin silinmediğini unutmayın. Yedeklemenin saklama süresi dolduktan sonra süresinin dolmasını bekleyebilir veya manuel olarak silmek için yedeklemeyi silme bölümüne göz atın.
Yedekleri yönet
Yedekleri listeleme
Mevcut yedeklemeleri listelemek için aşağıdaki yöntemlerden birini kullanın:
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda, yedekleme planının olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Afet Kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
- Yedekleme programı ayarlarını düzenleyin ve Kaydet'i tıklayı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ışı daha okunaklı bir biçimde biçimlendirir.
Yalnızca belirli bir konumdaki yedeklemeleri listelemek için --location
işaretini kullanın:
gcloud firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"
LOCATION
yerine bir Cloud Firestore konumunun adını yazın.
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 tanımlama
Bir yedeklemeyle ilgili ayrıntıları görüntülemek için aşağıdaki yöntemlerden birini kullanın:
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda, yedekleme planının olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Olağanüstü durum kurtarma sayfası açılır. Bu sayfada yedekleme programları açıklanmakta ve mevcut yedekler listelenmektedir.
gcloud
gcloud firestore backups describe
komutunu kullanın:
gcloud firestore backups describe \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION: Veritabanının konumu.
- BACKUP_ID: Yedeklemenin kimliği. Tüm yedeklemeleri listelediğinizde her yedeklemenin kimliğini görüntüleyebilirsiniz.
Firebase CLI
firebase firestore:backups:get
komutunu kullanın:
firebase firestore:backups:get BACKUP
- BACKUP: Yedeklemenin tam kaynak adı. Tüm yedeklemeleri listelediğinizde her yedeklemenin adını görüntüleyebilirsiniz.
Yedeği sil
Bir yedeklemeyi silmek için aşağıdaki yöntemlerden birini kullanın.
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda, yedekleme planının olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın. Olağanüstü durum kurtarma sayfası açılır. Bu sayfada yedekleme programları açıklanmakta ve mevcut yedekler listelenmektedir.
- Yedeklemeler tablosunda, yedekleme satırını bulun ve İşlemler sütununda Daha fazla göster'i( ) tıklayın. Sil'i tıklayın.
- Metin alanını kullanarak işlemi onaylayın ve Sil'i tıklayın.
gcloud
gcloud firestore backups delete
komutunu kullanın:
gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION: Veritabanının konumu.
- BACKUP_ID: Yedeklemenin kimliği. Tüm yedeklemeleri listelediğinizde her yedeklemenin kimliğini görüntüleyebilirsiniz.
Firebase CLI
firebase firestore:backups:delete
komutunu kullanın:
firebase firestore:backups:delete \ BACKUP
- BACKUP: Yedeklemenin tam kaynak adı. Tüm yedeklemeleri listelediğinizde her yedeğin adını görüntüleyebilirsiniz.
Veritabanı yedeğinden veri geri yükleme
Geri yükleme işlemi, yedekteki verileri yeni bir Cloud Firestore veritabanına yazar.
Geri yükleme işlemini başlatmak için aşağıdaki yöntemlerden birini kullanın:
Google Cloud konsolu
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinde veritabanının satırını bulun. Planlanmış yedeklemeler sütununda, yedekleme planının olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın. Olağanüstü durum kurtarma sayfası açılır. Bu sayfada yedekleme programları açıklanmakta ve mevcut yedekler listelenmektedir.
- Yedeklemeler tablosunda, bir yedeğin satırını bulun ve İşlemler sütununda Daha fazla göster'i(Cloud Shell ile geri yükle'yi tıklayın. ) tıklayın.
-
Seçilen yedekten geri yükleme işlemini başlatan gcloud CLI komutu içeren Cloud Shell paneli açılır. ID_OF_NEW_DATABASE değerini veritabanının kimliğiyle değiştirin ve komutu çalıştırın.
Komut çalıştırıldığında, işlem hakkında daha fazla bilgi içeren bir yanıt döndürülür. Veritabanı kısa süre içinde veritabanı listenizde görünür. Geri yükleme işlemi biraz zaman alır ve veritabanına erişilebilmesi için tamamlanması gerekir.
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ği ve geri yüklenen veriler için oluşturulan yeni veritabanının konumu.
- BACKUP_ID: Yedeklemenin kimliği. Tüm yedeklemeleri listelediğinizde her yedeklemenin kimliğini görüntüleyebilirsiniz.
- DATABASE_ID: Yeni veritabanı için veritabanı kimliği. Halihazırda kullanılmakta 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ı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
'ü kullanın:
gcloud firestore operations list --database=DATABASE_ID
name
alanını gcloud firestore operations describe
ile birlikte kullanarak:
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 yedeklemeleri listelediğinizde her yedeklemenin adını görüntüleyebilirsiniz.
- DATABASE_ID: Yeni veritabanı için veritabanı kimliği. Halihazırda kullanılmakta olan bir veritabanı kimliğini kullanamazsınız.