Verileri yedekleme ve geri yükleme

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şim
  • Aş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ş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. 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 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)'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 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
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 planı 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. 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: 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 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'
DATABASE_ID değerini veritabanının kimliğiyle değiştirin. Varsayılan veritabanı için '(default)' değerini kullanın.
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
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 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ı. 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
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 yerine Cloud Firestore adını girin konum.
Firebase CLI
firebase firestore:backups:list komutunu kullanın:
firebase firestore:backups:list
Yalnızca belirli bir konumdaki yedeklemeleri listelemek için --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
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:

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'
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 veritabanı için veritabanı kimliği. Halihazırda kullanımda olan bir veritabanı kimliğini kullanamazsınız.
Sonuç, 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
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: 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.