Verileri yedekleme ve geri yükleme

Bu sayfada, Cloud Firestore programlanmış yedeklemeler ö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 yedekleri kullanın.

Yedeklemeler, belirtilen veritabanının günlük veya haftalık yedeklerini almak için yedekleme planları yapılandırmanıza olanak tanır. Daha sonra bu yedekleri kullanarak verileri yeni bir veritabanına geri yükleyebilirsiniz.

Yedeklemeler hakkında

Yedek, veritabanının belirli bir zamandaki tutarlı bir kopyasıdır. Yedek, o andaki tüm verileri ve dizin yapılandırmalarını içerir.

Yedekleme, veritabanı geçerlilik 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 saklama süresi dolana veya siz yedeği silene kadar saklanır. Kaynak veritabanının silinmesi, ilgili yedekleri otomatik olarak silmez.

Cloud Firestore, bir veritabanıyla ilgili yedeklemeler ve yedekleme planları ile ilgili meta verileri depolar. Cloud Firestore, veritabanının tüm yedeklerinin süresi dolana veya yedekler silinene kadar bu meta verileri saklar.

Yedek oluşturma veya saklama, canlı veritabanınızdaki okuma ya da yazma işlemlerinin performansını etkilemez.

Maliyetler

Yedekleri kullandığınızda aşağıdaki işlemler için ücretlendirilirsiniz:

  • Her bir yedeklemenin kullandığı depolama alanı miktarı.
  • Geri yükleme işlemi için yedeklemenin boyutuna göre ücretlendirilirsiniz.

Daha fazla bilgi ve tam ü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 için gereken izinleri almak üzere yöneticinizden size aşağıdaki Identity and Access Management rollerinden birini veya daha fazlasını vermesini isteyin:

  • roles/datastore.owner: Cloud Firestore veritabanına tam erişim
  • roles/datastore.backupsAdmin: Yedeklemelere okuma ve yazma erişimi
  • roles/datastore.backupsViewer: Yedeklere okuma erişimi
  • roles/datastore.backupSchedulesAdmin: Yedekleme programlarına okuma ve yazma erişimi
  • roles/datastore.backupSchedulesViewer: Yedekleme programlarına okuma erişimi
  • roles/datastore.restoreAdmin: Geri yükleme işlemlerini başlatma izinleri

Yedekleme programları oluşturma ve yönetme

Aşağıdaki örneklerde, yedekleme programının nasıl ayarlanacağı gösterilmektedir. Her veritabanı için en fazla bir günlük yedekleme planı ve en fazla bir haftalık yedekleme planı yapılandırabilirsiniz. Haftanın farklı günleri için birden fazla haftalık yedekleme programı yapılandıramazsınız.

Yedeklemenin yapılacağı saati tam olarak yapılandıramazsınız. Yedeklemeler her gün farklı zamanlarda yapılır. Haftalık yedekleme programları için yedeklemenin yapılacağı haftanın gününü yapılandırabilirsiniz.

Yedekleme programı oluşturma

Yedekleme programı oluşturmak için aşağıdaki araçlardan birini kullanın.

Günlük yedekleme programı oluşturma

Google Cloud konsolu
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda, yedekleme programı olup olmamasına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
  3. Afet kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
  4. Günlük onay kutusunu işaretleyin, saklama süresini ayarlayın ve ardından Kaydet'i tıklayın.
Firebase CLI
Bir veritabanı için yedekleme planı oluşturmak üzere firebase firestore:databases:backups:schedules:create 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 ayarlayın.
Terraform
Günlük yedekleme planı oluşturmak için bir google_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.
  • google_firestore_database türündeki bir Terraform kaynağına kaynak referansı da kullanabilirsiniz.
  • RETENTION_PERIOD_SECONDS: Bu değeri saniye cinsinden bir değere ayarlayın ve ardından "s" ekleyin. Maksimum değer 8467200s (14 hafta) olabilir.

Haftalık yedekleme programı oluşturma

Google Cloud konsolu
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda, yedekleme programı olup olmamasına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
  3. Afet kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
  4. Haftalık onay kutusunu işaretleyin, bir yedekleme günü seçin, saklama süresini ayarlayın ve ardından Kaydet'i tıklayın.
Firebase CLI
Haftalık yedekleme programı oluşturmak için --recurrence işaretini WEEKLY olarak ayarlayın ve --day-of-week seçeneğini belirleyin:
firebase firestore:backups:schedules:create \
--database 'DATABASE_ID' \
--recurrence 'WEEKLY' \
--retention RETENTION_PERIOD
--day-of-week DAY
Aşağıdakileri 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 ayarlayın.
  • DAY: Yedeklemenin yapılacağı gün. Aşağıdakilerden birini seçin:
    • 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
Terraform
Haftalık yedekleme planı oluşturmak için google_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.
  • google_firestore_database türündeki bir Terraform kaynağına kaynak referansı da kullanabilirsiniz.
  • RETENTION_PERIOD_SECONDS: Bu değeri saniye cinsinden bir değere ayarlayın ve ardından "s" ekleyin. Maksimum değer 8467200s (14 hafta) olabilir.
  • DAY: Yedeklemenin yapılacağı gün. Aşağıdakilerden birini seçin:
    • 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

Yedekleme programlarını listeleme

Bir veritabanının tüm yedekleme programlarını listelemek için aşağıdaki yöntemlerden birini kullanın:

Google Cloud konsolu
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda, yedekleme programı olup olmamasına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
  3. Olağanüstü durum kurtarma sayfası açılır. Bu sayfada yedekleme programları açıklanır ve mevcut yedekler listelenir.
Firebase CLI
firebase firestore:backups:schedules:list komutunu kullanın.
firebase firestore:backups:schedules:list \
--database 'DATABASE_ID'
DATABASE_ID ifadesini veritabanının kimliğiyle değiştirin. Varsayılan veritabanı için '(default)' kullanın.

Yedekleme programını açıklayın

Yedekleme programıyla ilgili bilgileri almak için aşağıdaki yöntemlerden birini kullanın:

Google Cloud konsolu
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda, yedekleme programı olup olmamasına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
  3. Olağanüstü durum kurtarma sayfası açılır. Bu sayfada yedekleme programları açıklanır ve mevcut yedekler listelenir.
gcloud
gcloud firestore backups schedules describe komutunu kullanın:
gcloud firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
Aşağıdakileri değiştirin:
  • DATABASE_ID: Yedeklenecek veritabanının kimliği. Varsayılan veritabanı için '(default)' olarak ayarlayın.
  • BACKUP_SCHEDULE_ID: Yedekleme programının kimliği. Tüm yedekleme programlarını listelediğinizde her yedekleme programının kimliğini görüntüleyebilirsiniz.

Yedekleme programını güncelleme

Yedekleme programının saklama süresini güncellemek için aşağıdaki yöntemlerden birini kullanın:

Google Cloud konsolu
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
  3. Afet kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
  4. Yedekleme programı ayarlarını düzenleyin ve ardından Kaydet'i tıklayın.
Firebase CLI
firebase firestore:backups:schedules:update komutunu kullanın:
firebase firestore:backups:schedules:update \
BACKUP_SCHEDULE \
--retention RETENTION_PERIOD
Aşağıdakileri değiştirin:

Yedekleme programının saklama süresini güncelleyebilirsiniz ancak yinelenme sıklığını güncelleyemezsiniz. Farklı bir yinelenme sıklığına sahip bir yedekleme planına ihtiyacınız varsa artık gerekli değilse eski yedekleme planını silin ve tercih edilen yinelenme sıklığına sahip yeni bir yedekleme planı oluşturun.

Yedekleme planını silme

Yedekleme programını silmek için aşağıdaki yöntemlerden birini kullanın:

Google Cloud konsolu
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda, yedekleme programı olup olmamasına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
  3. Afet kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
  4. Yedekleme programı ayarlarını düzenleyin ve ardından Kaydet'i tıklayın.
Firebase CLI
firebase firestore:backups:schedules:delete komutunu kullanın:
firebase firestore:backups:schedules:delete \
BACKUP_SCHEDULE
Aşağıdakileri değiştirin:

Yedekleme programını sildiğinizde, bu program tarafından oluşturulmuş yedeklerin silinmeyeceğini unutmayın. Saklama süreleri dolduktan sonra silinmelerini bekleyebilir veya bir yedeklemeyi manuel olarak silmek için Yedeklemeyi silme bölümüne bakabilirsiniz.

Yedekleri yönet

Yedekleri listeleme

Kullanılabilir yedekleri listelemek için aşağıdaki yöntemlerden birini kullanın:

Google Cloud konsolu
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda, yedekleme programı olup olmamasına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
  3. Afet kurtarma ayarlarını düzenlemek için Düzenle'yi tıklayın.
  4. Yedekleme programı ayarlarını düzenleyin ve ardından Kaydet'i tıklayın.
Firebase CLI
firebase firestore:backups:list komutunu kullanın:
firebase firestore:backups:list
Yalnızca belirli bir konumdaki yedekleri listelemek için --location işaretini kullanın:
firebase firestore:backups:list \
--location=LOCATION
LOCATION ifadesini bir Cloud Firestore konumunun adıyla değiştirin.

Yedeklemeyi açıklama

Yedeklemeyle ilgili ayrıntıları görüntülemek için aşağıdaki yöntemlerden birini kullanın:

Google Cloud konsolu
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda, yedekleme programı olup olmamasına bağlı olarak Yedeklemeleri görüntüle veya Ayarları düzenle'yi tıklayın.
  3. Olağanüstü durum kurtarma sayfası açılır. Bu sayfada yedekleme programları açıklanır ve mevcut yedekler listelenir.
Firebase CLI
firebase firestore:backups:get komutunu kullanın:
firebase firestore:backups:get BACKUP
Aşağıdakileri değiştirin:

Yedeği sil

Yedekleri silmek için aşağıdaki yöntemlerden birini kullanın.

Google Cloud konsolu
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda, yedekleme programı olup olmaması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çıklanır ve mevcut yedekler listelenir.
  3. Yedeklemeler tablosunda bir yedeklemenin satırını bulun ve İşlemler sütununda Daha fazla göster'i() tıklayın. Sil'i tıklayın.
  4. Metin alanını kullanarak işlemi onaylayın ve Sil'i tıklayın.
Firebase CLI
firebase firestore:backups:delete komutunu kullanın:
firebase firestore:backups:delete \
BACKUP
Aşağıdakileri değiştirin:

Veritabanı yedeğindeki verileri geri yükleme

Geri yükleme işlemi, yedeklemedeki 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
  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinde veritabanının satırını bulun. Programlanmış yedeklemeler sütununda, yedekleme programı olup olmaması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çıklanır ve mevcut yedekler listelenir.
  3. Yedeklemeler tablosunda bir yedeklemenin satırını bulun ve İşlemler sütununda Daha fazla göster'i() tıklayın. Cloud Shell ile geri yükle'yi tıklayın.
  4. Cloud Shell paneli, seçilen yedeklemeden geri yükleme yapmak için gcloud CLI komutuyla açılır. ID_OF_NEW_DATABASE ifadesini veritabanı kimliğiyle değiştirip 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şlemi biraz zaman alır ve veritabanına erişilebilmesi için işlemin tamamlanması gerekir.

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 yedeğin adını görebilirsiniz.
  • DATABASE_ID: Yeni veritabanı için veritabanı kimliği. Kullanımda olan bir veritabanı kimliğini kullanamazsınız.

Sınırlamalar

Geri yükleme işlemi, (default) veritabanındaki App Engine arama verilerini veya blob varlıklarını geri yüklemez. Bu veriler yalnızca (default) veritabanı için geçerlidir ve (default) veritabanından bu tür verileri desteklemeyen bir veritabanına geri yükleme yaparsanız kullanılamaz. Bu nedenle, yedeklemelere dahil edilmez.

Geri yükleme işleminden sonra yapılması gerekenler

Geri yükleme işlemini tamamladıktan sonra şunları yapmanız gerekir:

  • Yeni veritabanınıza uygun IAM denetimlerinin uygulandığını doğrulayın.

  • Daha önce TTL politikaları kullandıysanız bunları yeni veritabanına yeniden uygulayın. TTL politikaları yedeklere dahil edilmez ve geri yüklenen veritabanlarına otomatik olarak yeniden uygulanmaz.