Verileri yedekleme ve geri yükleme

Bu sayfada, Cloud Firestore planlı yedeklemelerinin 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, yedeklemeler ve yedeklemeyle ilgili meta verileri depolar. bir zaman çizelgesi de oluşturabilirsiniz. Cloud Firestore, bu meta verileri saklar tüm yedeklerin süresi dolana veya silinene kadar.

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şim
  • Aşağıdaki roller de kullanılabilir ancak Google Cloud Platform Console'da görünmez. Google Cloud KSA'yı kullanma şu rolleri atamak için:

    • roles/datastore.backupsAdmin: Yedeklere 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 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 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. Şu değere ayarla: Varsayılan veritabanı için '(default)'.
  • Ayrıca bir kaynak referansı google_firestore_database türündeki Terraform kaynağı.
  • 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.

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
Aş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
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
Aş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
Terraform
Haftalık yedekleme programı oluşturmak için bir 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. Şu değere ayarla: Varsayılan veritabanı için '(default)'.
  • Ayrıca bir kaynak referansı google_firestore_database türündeki Terraform kaynağı.
  • 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

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_ID
Aş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_PERIOD
Aş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_PERIOD
Aş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_ID
Aş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_SCHEDULE
Aşağıdakileri değiştirin:

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:list
Yalnı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_ID
Aşağıdakileri değiştirin:
Firebase CLI
firebase firestore:backups:get komutunu kullanın:
firebase firestore:backups:get BACKUP
Aşağıdakileri değiştirin:

Yedeği sil

Bir yedeği silmek için aşağıdaki yöntemlerden birini kullanın. Uyarı: Silinmiş bir yedeği kurtaramazsınız.
gcloud
gcloud firestore backups delete komutunu kullanın:
gcloud firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID
Aşağıdakileri değiştirin:
Firebase CLI
firebase firestore:backups:delete komutunu kullanın:
firebase firestore:backups:delete \
BACKUP
Aşağıdakileri değiştirin:

Verileri veritabanı yedeğinden geri yükleme

Geri yükleme işlemi, verileri yedekten yeni bir Cloud Firestore'a 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.
ziyaret edin. Çıkışta 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ı olarak 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_ID
veya 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.