Bu sayfada, Cloud Firestore planlanmış yedeklemeler özelliğinin nasıl kullanılacağı açıklanmaktadır. Verilerinizi uygulama düzeyinde bozulmaya veya yanlışlıkla silinmeye karşı korumak için yedeklemeleri kullanın.
Yedekler, belirtilen veritabanının günlük veya haftalık yedeklerini almak için yedekleme programları yapılandırmanıza olanak tanır. Bu yedekleri daha sonra verileri yeni bir veritabanına geri yüklemek için kullanabilirsiniz.
Yedeklemeler hakkında
Yedek, veritabanının belirli bir zamandaki tutarlı kopyasıdır. Yedekleme, o andaki tüm verileri ve dizin yapılandırmalarını içerir. Yedekleme, veritabanı geçerlilik politikalarını içermez. Yedekler, kaynak veritabanı ile aynı konumda bulunur.
Yedeklemelerin yapılandırılabilir bir saklama süresi vardır ve saklama süresi sona erene veya siz yedeklemeyi silene kadar saklanır. Kaynak veritabanının silinmesi, ilgili yedeklemelerin otomatik olarak silinmesine neden olmaz.
Cloud Firestore, yedeklemeler ve bir veritabanıyla ilgili yedekleme planlarıyla ilgili meta verileri depolar. Cloud Firestore, bu meta verileri veritabanının tüm yedeklemelerinin süresi dolana veya yedeklemeler silinene kadar saklar.
Yedek oluşturma veya yedekleri saklama, canlı veritabanınızdaki okuma veya yazma işlemlerinin performansını etkilemez.
Maliyetler
Yedekleri kullanırken aşağıdakiler için ücret ödemeniz gerekir:
- Her yedeklemenin kullandığı depolama alanı miktarı.
- Geri yükleme işleminde, yedeğin boyutuna göre ücretlendirilirsiniz.
Daha fazla ayrıntı ve kesin ü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 için gereken izinleri almak üzere yöneticinizden size aşağıdaki Kimlik ve Erişim Yönetimi rollerinden birini veya daha fazlasını vermesini isteyin:
roles/datastore.owner
: Cloud Firestore veritabanına tam erişimroles/datastore.backupsAdmin
: Yedeklere okuma ve yazma erişimiroles/datastore.backupsViewer
: Yedeklere 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, yedekleme programının nasıl ayarlanacağı gösterilmektedir. Her veritabanı için günde en fazla bir yedekleme programı ve haftada en fazla bir 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 olarak hangi saatte yapılacağını yapılandıramazsınız. Yedeklemeler her gün farklı zamanlarda alınır. Haftalık yedekleme programları için yedeklemenin yapılacağı haftanın günü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ı olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Olağanüstü durum 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
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: Bunu en fazla 14 haftalık (
14w
) bir değere ayarlayın.
Firebase CLI
Veritabanı için yedekleme planı oluşturmak üzerefirebase firestore:databases:backups:schedules
veya firebase 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: Bunu en fazla 14 haftalık (
14w
) bir değere ayarlayın.
Terraform
Günlük yedekleme planı oluşturmak içingoogle_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.
Ayrıca, - RETENTION_PERIOD_SECONDS: Bunu saniye cinsinden bir değere ve ardından "s" harfine ayarlayın. Maksimum değer
8467200s
(14 hafta) olur.
google_firestore_database
türünde 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ı olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Olağanüstü durum kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
- Haftalık onay kutusunu işaretleyin, yedekleme günü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: Bunu en fazla 14 haftalık (
14w
) bir değere ayarlayın. - DAY: Yedeklemenin yapılacağı haftanın günü. Aşağıdaki değerlerden 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: Bunu en fazla 14 haftalık (
14w
) bir değere ayarlayın. - DAY: Yedeklemenin yapılacağı haftanın günü. Aşağıdaki değerlerden 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 programı oluşturmak içingoogle_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.
Ayrıca, - RETENTION_PERIOD_SECONDS: Bunu saniye cinsinden bir değere ve ardından "s" harfine ayarlayın. Maksimum değer
8467200s
(14 hafta) olur. - DAY: Yedeklemenin yapılacağı haftanın günü. Aşağıdaki değerlerden 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ünde 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ı 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 planları açıklanmakta ve kullanılabilir yedekler listelenmektedir.
gcloud
gcloud firestore backups schedules list
komutunu kullanın.
gcloud firestore backups schedules list \ --database='DATABASE_ID'
'(default)'
kullanın.
Firebase CLI
firebase firestore:backups:schedules:list
komutunu kullanın.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'
'(default)'
kullanın.
Yedekleme programını açıklayın
Yedekleme planı hakkında bilgi 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ı 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 planları açıklanmakta ve kullanılabilir yedekler listelenmektedir.
gcloud
Şu komutu kullanın:gcloud firestore backups schedules describe
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. Tüm yedekleme programlarını listelediğinizde her bir yedekleme programının kimliğini görüntüleyebilirsiniz.
Yedekleme zamanlamasını güncelleme
Yedekleme planını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.
- Olağanüstü durum kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
- Yedekleme planı 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 planının kimliği. Tüm yedekleme programlarını listelediğinizde her bir yedekleme programının kimliğini görüntüleyebilirsiniz.
- RETENTION_PERIOD: Bunu en fazla 14 haftalık (
14w
) 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 programlarını listelediğinizde her bir yedekleme programının adını görebilirsiniz.
- RETENTION_PERIOD: Bunu en fazla 14 haftalık (
14w
) bir değere ayarlayın.
Yedekleme programının saklama süresini güncelleyebilirsiniz ancak yinelenme sıklığını güncelleyemezsiniz. Farklı bir sıklıkta yedekleme planına ihtiyacınız varsa artık gerekli olmayan eski yedekleme planını silin ve istediğiniz sıklıkta yeni bir yedekleme planı oluşturun.
Yedekleme planını silme
Bir 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ı olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Olağanüstü durum kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
- Yedekleme planı 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 planının kimliği. Tüm yedekleme programlarını listelediğinizde her bir yedekleme programını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 programlarını listelediğinizde her bir yedekleme programının adını görebilirsiniz.
Yedekleme planının silinmesi, bu planla daha önce oluşturulan yedekleri silmez. Saklama süreleri dolduktan sonra yedeklemelerin süresinin dolmasını bekleyebilir veya yedeklemeleri manuel olarak silebilirsiniz. Yedeklemeleri manuel olarak silmek için Yedeklemeyi silme başlıklı makaleyi inceleyin.
Yedekleri yönet
Yedekleri listeleme
Kullanılabilir yedekleri 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ı olup olmadığına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
- Olağanüstü durum kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
- Yedekleme planı 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, çıktıyı daha okunabilir bir biçimde düzenler.
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 bir Cloud Firestore
konumun 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
konumun adını yazın.
Yedeği açıklama
Bir yedekleme hakkındaki 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ı 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 planları açıklanmakta ve kullanılabilir 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: Yedeğin kimliği. Tüm yedeklemeleri listelediğinizde her bir yedeklemenin kimliğini görüntüleyebilirsiniz.
Firebase CLI
firebase firestore:backups:get
komutunu kullanın:
firebase firestore:backups:get BACKUP
- BACKUP: Yedeğin tam kaynak adı. Tüm yedeklemeleri listelediğinizde her bir yedeklemenin adını görebilirsiniz.
Yedeği sil
Bir yedeği 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ı 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 planları açıklanmakta ve kullanılabilir yedekler listelenmektedir.
- Yedekler tablosunda bir yedeğin 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: Yedeğin kimliği. Tüm yedeklemeleri listelediğinizde her bir yedeklemenin kimliğini görüntüleyebilirsiniz.
Firebase CLI
firebase firestore:backups:delete
komutunu kullanın:
firebase firestore:backups:delete \ BACKUP
- BACKUP: Yedeğin tam kaynak adı. Tüm yedeklemeleri listelediğinizde her bir yedeklemenin adını görebilirsiniz.
Verileri veritabanı yedeğinden geri yükleme
Geri yükleme işlemi, yedekteki verileri yeni bir Cloud Firestore veritabanına yazar.
Geri yükleme işlemine başlamak 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ı 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 planları açıklanmakta ve kullanılabilir yedekler listelenmektedir.
- Yedekler 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 yedeklemeden geri yükleme yapmak için gcloud CLI komutunun bulunduğu Cloud Shell paneli açılır. ID_OF_NEW_DATABASE yerine veritabanı için bir kimlik girin 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 veritabanları listenizde görünür. Geri yükleme işleminin tamamlanması biraz zaman alacaktır ve veritabanına erişilebilmesi için bu işlemin 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 \ --tags=[KEY=VALUE]'
- 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: Yedeğin kimliği. Tüm yedeklemeleri listelediğinizde her bir yedeklemenin kimliğini görüntüleyebilirsiniz.
- DATABASE_ID: Yeni veritabanının veritabanı kimliği. Halihazırda kullanılan bir veritabanı kimliğini kullanamazsınız.
- [KEY=VALUE]: Bağlanacak isteğe bağlı bir etiket KEY=VALUE çiftleri listesi. Örneğin:
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
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ükleme işleminin şu ana kadarki tahmini ilerleme durumunu ayrıntılı olarak açıklayan 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 kullanın:
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: Yedeğin tam kaynak adı. Tüm yedeklemeleri listelediğinizde her bir yedeklemenin adını görebilirsiniz.
- DATABASE_ID: Yeni veritabanının veritabanı kimliği. Halihazırda kullanılan bir veritabanı kimliğini kullanamazsınız.