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
- Pazar günü için
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
-
LOCATION
: Veritabanının konumu. -
BACKUP_ID
: Yedeklemenin kimliği. Tüm yedeklemeleri listelediğinizde her yedeklemenin kimliğini görüntüleyebilirsiniz.
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