Verileri yedekleyin ve geri yükleyin

Bu sayfada Cloud Firestore planlı yedekleme özelliğinin nasıl kullanılacağı açıklanmaktadır. Verilerinizi uygulama düzeyinde veri bozulmasına veya verilerin yanlışlıkla silinmesine karşı korumak için yedeklemeleri kullanın.

Yedeklemeler, belirtilen veritabanının günlük veya haftalık yedeklerini alacak şekilde yedekleme programlarını yapılandırmanıza olanak tanır. Daha sonra bu yedeklemeleri verileri yeni bir veritabanına geri yüklemek için kullanabilirsiniz.

Yedeklemeler hakkında

Yedekleme, veritabanının belirli bir andaki tutarlı bir kopyasıdır. Yedekleme, o andaki tüm verileri ve dizin yapılandırmalarını içerir. Yedekleme, veritabanının geçerlilik süresi ilkelerini içermez. Yedekleme, kaynak veritabanıyla aynı konumda bulunur.

Yedeklemelerin yapılandırılabilir bir saklama süresi vardır ve saklama süresi sona erene veya siz yedeği silene kadar saklanır. Kaynak veritabanının silinmesi, ilgili yedeklemelerin otomatik olarak silinmesine neden olmaz.

Cloud Firestore, bir veritabanıyla ilgili yedeklemeler ve yedekleme planlarıyla ilgili meta verileri depolar. Cloud Firestore, veritabanına yönelik tüm yedeklemelerin süresi dolana veya silinene kadar bu meta verileri korur.

Yedeklemelerin oluşturulması veya saklanması, canlı veritabanınızdaki okuma veya yazma performansını etkilemez.

Maliyetler

Yedeklemeleri kullandığınızda aşağıdakiler için ücretlendirilirsiniz:

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

Daha fazla ayrıntı ve kesin fiyatlar için Fiyatlandırma sayfasına bakın.

Sen başlamadan önce

Bu özellik Blaze fiyatlandırma planını gerektirir.

Gerekli roller

Yedeklemeleri ve yedekleme planlarını yönetmek için ihtiyaç duyduğunuz izinleri almak için yöneticinizden size aşağıdaki Kimlik ve Erişim Yönetimi rollerinden bir veya daha fazlasını vermesini isteyin:

  • roles/datastore.owner : Cloud Firestore veritabanına tam erişim
  • Aşağıdaki roller de mevcuttur ancak Google Cloud Platform Konsolunda görünmez. Şu rolleri atamak için Google Cloud CLI'yi kullanın :

    • roles/datastore.backupsAdmin : Yedeklemelere okuma ve yazma erişimi
    • roles/datastore.backupsViewer : Yedeklemelere okuma erişimi
    • roles/datastore.backupSchedulesAdmin : Yedekleme planlarına okuma ve yazma erişimi
    • roles/datastore.backupSchedulesViewer : Yedekleme planlarına okuma erişimi
    • roles/datastore.restoreAdmin : Geri yükleme işlemlerini başlatma izinleri

Yedekleme programları oluşturun ve yönetin

Aşağıdaki örnekler bir yedekleme zamanlamasının nasıl ayarlanacağını göstermektedir. 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 planı yapılandıramazsınız.

Yedeklemenin tam gününü yapılandıramazsınız. Yedeklemeler her gün farklı zamanlarda alınır. Haftalık yedekleme programları için haftanın gününü yedeklemenin alınacağı şekilde yapılandırabilirsiniz.

Bir yedekleme planı oluşturun

Bir veritabanına yönelik yedekleme planı oluşturmak için gcloud alpha firestore backups schedules create komutunu kullanın.

Günlük yedekleme planı oluşturun

Günlük bir yedekleme planı oluşturmak için --recurrence bayrağını daily olarak ayarlayın:

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=daily \
--retention=RETENTION_PERIOD

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 : daily yedekleme yinelemesi için bunu 7 güne ( 7d ) kadar bir değere ayarlayın. weekly bir yedekleme yinelemesi ayarlarsanız bunu 14 haftaya ( 14w ) kadar bir değere ayarlayın.

Haftalık bir yedekleme planı oluşturun

Haftalık bir yedekleme planı oluşturmak için --recurrence bayrağını weekly olarak ayarlayın:

gcloud alpha 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 : weekly yedekleme yinelemesi için bunu 14 haftaya ( 14w ) kadar bir değere ayarlayın.
  • DAY : Yedeğin alınacağı haftanın günü. Aşağıdakilerden birine ayarlayın:
    • Pazar günü için SUN
    • Pazartesi için MON
    • Salı günü TUE
    • Çarşamba için WED
    • perşembe için THU
    • Cuma için FRI
    • Cumartesi için SAT

Yedekleme programlarını listeleyin

Bir veritabanına ilişkin tüm yedekleme planlarını listelemek için gcloud alpha firestore backups schedules list komutunu kullanın. Bu komut, tüm yedekleme zamanlamalarıyla ilgili bilgileri döndürür.

gcloud alpha firestore backups schedules list \
--database='DATABASE_ID'

DATABASE_ID veritabanının kimliğiyle değiştirin. Varsayılan veritabanı için (default) öğesini kullanın.

Yedekleme zamanlamasını açıklayın

Bir yedekleme planı hakkında bilgi almak için gcloud alpha firestore backups schedules describe komutunu kullanın:

gcloud alpha 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. Tüm yedekleme programlarını listelediğinizde , her bir yedekleme planının kimliğini görüntüleyebilirsiniz.

Yedekleme zamanlamasını güncelleme

Bir yedekleme planının saklama süresini güncellemek için gcloud alpha firestore backups schedules update komutunu kullanın:

gcloud alpha 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. 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 yedekleme programının kimliğini görüntüleyebilirsiniz.
  • RETENTION_PERIOD : daily yedekleme yinelemesini ayarlarsanız, bunu 7 güne ( 7d ) kadar bir değere ayarlayın. weekly bir yedekleme yinelemesi ayarlarsanız bunu 14 haftaya ( 14w ) kadar bir değere ayarlayın.

Yedekleme zamanlamasını silme

Bir yedekleme planını silmek için gcloud alpha firestore backups schedules delete komutunu kullanın:

gcloud alpha 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. 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 planının kimliğini görüntüleyebilirsiniz.

Bir yedekleme zamanlamasını silmenin, bu zamanlama tarafından önceden oluşturulmuş yedeklemeleri silmeyeceğini unutmayın. Saklama süreleri dolduktan sonra bunların süresinin dolmasını bekleyebilirsiniz veya bir yedeği manuel olarak silebilirsiniz; bkz . yedeği silme .

Yedeklemeleri yönet

Yedeklemeleri listele

Mevcut yedeklemeleri listelemek için gcloud alpha firestore backups list komutunu kullanın:

gcloud alpha firestore backups list \
--format="table(name, database, state)"

--format="table(name, database, state)" bayrağı, çıktıyı daha okunabilir bir biçime biçimlendirir.

Yalnızca belirli bir konumdaki yedeklemeleri listelemek için --location bayrağını kullanın:

gcloud alpha firestore backups list \
--location=LOCATION \
--format="table(name, database, state)"

LOCATION Cloud Firestore konumunun adıyla değiştirin.

Yedeklemeyi açıklayın

Bir yedeklemeyle ilgili ayrıntıları görüntülemek için gcloud alpha firestore backups describe komutunu kullanın:

gcloud alpha 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.

Yedeği sil

Bir yedeği silmek için gcloud alpha firestore backups delete komutunu kullanın:

gcloud alpha firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID

Veri tabanı yedeklemesinden verileri geri yükleme

Geri yükleme işlemi, verileri bir yedekten yeni bir Cloud Firestore veritabanına yazar. Bir geri yükleme işlemine başlamak için gcloud alpha firestore databases restore komutunu kullanın:

gcloud alpha 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ğinin konumu 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. Zaten kullanımda olan bir veritabanı kimliğini kullanamazsınız.

Çıktı metadata , name ve response bileşenlerini içerecektir:

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 o ana kadarki tahmini ilerlemesini ayrıntılandıran bir progressPercentage bileşeni ve geri yüklemenin genel durumunu belirten bir operationState içerir.

Bu bilgiyi tekrar almak için gcloud firestore operations list kullanın:

gcloud firestore operations list --database=DATABASE_ID

veya yukarıda açıklanan çıktıdaki name alanını kullanarak, gcloud firestore operations describe :

gcloud firestore operations describe OPERATION_NAME