این صفحه نحوه استفاده از ویژگی پشتیبان گیری برنامه ریزی شده Cloud Firestore را شرح می دهد. از پشتیبانگیری برای محافظت از دادههای خود در برابر خرابی دادههای سطح برنامه یا حذف تصادفی دادهها استفاده کنید.
پشتیبانگیری به شما امکان میدهد برنامههای پشتیبانگیری را برای تهیه نسخه پشتیبان روزانه یا هفتگی از پایگاه داده مشخص شده پیکربندی کنید. سپس می توانید از این نسخه های پشتیبان برای بازیابی داده ها به یک پایگاه داده جدید استفاده کنید.
در مورد پشتیبان گیری
یک نسخه پشتیبان یک کپی ثابت از پایگاه داده در یک نقطه از زمان است. نسخه پشتیبان شامل تمام داده ها و تنظیمات فهرست در آن نقطه از زمان است. یک نسخه پشتیبان شامل زمان پایگاه داده تا خط مشی های زنده نیست. یک نسخه پشتیبان در همان مکان پایگاه داده منبع قرار دارد.
نسخه های پشتیبان دارای یک دوره نگهداری قابل تنظیم هستند و تا زمانی که دوره نگهداری به پایان برسد یا تا زمانی که نسخه پشتیبان را حذف نکنید ذخیره می شوند. حذف پایگاه داده منبع به طور خودکار نسخه های پشتیبان مرتبط را حذف نمی کند.
Cloud Firestore ابرداده های مربوط به پشتیبان گیری و برنامه های پشتیبان گیری مربوط به پایگاه داده را ذخیره می کند. Cloud Firestore این ابرداده را تا زمانی که تمام نسخه های پشتیبان برای پایگاه داده منقضی شود یا حذف شود، حفظ می کند.
ایجاد یا حفظ نسخه پشتیبان بر عملکرد خواندن یا نوشتن در پایگاه داده زنده شما تأثیری ندارد.
هزینه ها
وقتی از پشتیبانگیری استفاده میکنید، هزینههای زیر از شما دریافت میشود:
- مقدار فضای ذخیرهسازی استفاده شده توسط هر نسخه پشتیبان.
- برای عملیات بازیابی، بر اساس اندازه نسخه پشتیبان هزینه دریافت میکنید.
برای جزئیات بیشتر و نرخ های دقیق، صفحه قیمت را ببینید.
قبل از شروع
این ویژگی به برنامه قیمت گذاری Blaze نیاز دارد.نقش های مورد نیاز
برای دریافت مجوزهایی که برای مدیریت پشتیبانگیریها و برنامههای پشتیبانگیری نیاز دارید، از سرپرست خود بخواهید یک یا چند مورد از نقشهای مدیریت هویت و دسترسی زیر را به شما اعطا کند:
-
roles/datastore.owner
: دسترسی کامل به پایگاه داده Cloud Firestore نقشهای زیر نیز موجود هستند اما در کنسول Google Cloud قابل مشاهده نیستند. از Google Cloud CLI برای تخصیص این نقشها استفاده کنید :
-
roles/datastore.backupsAdmin
: دسترسی خواندن و نوشتن به نسخههای پشتیبان -
roles/datastore.backupsViewer
: خواندن دسترسی به نسخه پشتیبان -
roles/datastore.backupSchedulesAdmin
: دسترسی خواندن و نوشتن به برنامه های پشتیبان گیری -
roles/datastore.backupSchedulesViewer
: خواندن دسترسی به برنامه های پشتیبان -
roles/datastore.restoreAdmin
: مجوزهایی برای شروع عملیات بازیابی
-
ایجاد و مدیریت برنامه های پشتیبان
مثالهای زیر نحوه تنظیم یک برنامه پشتیبان را نشان میدهند. برای هر پایگاه داده، می توانید حداکثر یک برنامه پشتیبان گیری روزانه و حداکثر یک برنامه پشتیبان گیری هفتگی را پیکربندی کنید. شما نمی توانید چندین برنامه پشتیبان گیری هفتگی را برای روزهای مختلف هفته پیکربندی کنید.
شما نمی توانید زمان دقیق روز پشتیبان گیری را پیکربندی کنید. پشتیبان گیری در زمان های مختلف هر روز گرفته می شود. برای برنامههای پشتیبانگیری هفتگی، میتوانید روز هفته را برای تهیه نسخه پشتیبان پیکربندی کنید.
یک برنامه پشتیبان ایجاد کنید
برای ایجاد یک برنامه زمانبندی پشتیبانگیری برای پایگاه داده، از دستور gcloud firestore backups schedules create
یا firebase firestore:databases:backups:schedules
استفاده کنید.
یک برنامه پشتیبان روزانه ایجاد کنید
gcloud
برای ایجاد یک برنامه پشتیبان روزانه، پرچم--recurrence
را روی daily
تنظیم کنید:gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=daily \ --retention=RETENTION_PERIOD
موارد زیر را جایگزین کنید:
- DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیشفرض روی
'(default)'
تنظیم کنید. - RETENTION_PERIOD : این مقدار را تا 14 هفته (
14w
) تنظیم کنید.
Firebase CLI
برای ایجاد یک برنامه پشتیبان روزانه، پرچم--recurrence
را روی DAILY
تنظیم کنید:firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'DAILY' \ --retention RETENTION_PERIOD
موارد زیر را جایگزین کنید:
- DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیشفرض روی
'(default)'
تنظیم کنید. - RETENTION_PERIOD : این مقدار را تا 14 هفته (
14w
) تنظیم کنید.
Terraform
برای ایجاد یک برنامه پشتیبان روزانه، یک منبعgoogle_firestore_backup_schedule
ایجاد کنید.resource "google_firestore_backup_schedule" "daily-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS daily_recurrence {} }
موارد زیر را جایگزین کنید:
- PROJECT_ID : شناسه پروژه.
- DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیشفرض روی
'(default)'
تنظیم کنید. همچنین می توانید از یک مرجع منبع به یک منبع Terraform از نوع - RETENTION_PERIOD_SECONDS : این مقدار را بر حسب ثانیه تنظیم کنید و سپس "s" را در نظر بگیرید. حداکثر مقدار
8467200s
(14 هفته) است.
google_firestore_database
استفاده کنید.یک برنامه پشتیبان هفتگی ایجاد کنید
gcloud
برای ایجاد یک برنامه پشتیبان هفتگی، پرچم--recurrence
را روی weekly
تنظیم کنید:gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=weekly \ --retention=RETENTION_PERIOD \ --day-of-week=DAYموارد زیر را جایگزین کنید:
- DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیشفرض روی
'(default)'
تنظیم کنید. - RETENTION_PERIOD : این مقدار را تا 14 هفته (
14w
) تنظیم کنید. - DAY : روز هفته برای گرفتن نسخه پشتیبان. روی یکی از موارد زیر تنظیم کنید:
-
SUN
برای یکشنبه -
MON
برای دوشنبه -
TUE
برای سه شنبه -
WED
برای چهارشنبه -
THU
برای پنجشنبه -
FRI
برای جمعه - برای شنبه
SAT
-
Firebase CLI
برای ایجاد یک برنامه پشتیبان هفتگی، پرچم--recurrence
را روی WEEKLY
تنظیم کنید:firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'WEEKLY' \ --retention RETENTION_PERIOD --day-of-week DAYموارد زیر را جایگزین کنید:
- DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیشفرض روی
'(default)'
تنظیم کنید. - RETENTION_PERIOD : این مقدار را تا 14 هفته (
14w
) تنظیم کنید. - DAY : روز هفته برای گرفتن نسخه پشتیبان. روی یکی از موارد زیر تنظیم کنید:
-
SUNDAY
برای یکشنبه -
MONDAY
برای دوشنبه -
TUESDAY
برای سه شنبه -
WEDNESDAY
برای چهارشنبه -
THURSDAY
برای پنجشنبه -
FRIDAY
برای جمعه -
SATURDAY
برای شنبه
-
Terraform
برای ایجاد یک برنامه پشتیبان هفتگی، یک منبعgoogle_firestore_backup_schedule
ایجاد کنید.resource "google_firestore_backup_schedule" "weekly-backup" { project = PROJECT_ID database = DATABASE_ID retention = RETENTION_PERIOD_SECONDS weekly_recurrence { day = DAY } }
موارد زیر را جایگزین کنید:
- PROJECT_ID : شناسه پروژه.
- DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیش فرض روی
'(default)'
تنظیم کنید. همچنین می توانید از یک مرجع منبع به یک منبع Terraform از نوع - RETENTION_PERIOD_SECONDS : این مقدار را بر حسب ثانیه تنظیم کنید و سپس "s" را در نظر بگیرید. حداکثر مقدار
8467200s
(14 هفته) است. - DAY : روز هفته برای گرفتن نسخه پشتیبان. روی یکی از موارد زیر تنظیم کنید:
-
SUNDAY
برای یکشنبه -
MONDAY
برای دوشنبه -
TUESDAY
برای سه شنبه -
WEDNESDAY
برای چهارشنبه -
THURSDAY
برای پنجشنبه -
FRIDAY
برای جمعه -
SATURDAY
برای شنبه
-
google_firestore_database
استفاده کنید.فهرست برنامه های پشتیبان گیری
برای فهرست کردن تمام برنامه های پشتیبان گیری برای یک پایگاه داده، از یکی از روش های زیر استفاده کنید:
gcloud
از دستورgcloud firestore backups schedules list
استفاده کنید.gcloud firestore backups schedules list \ --database='DATABASE_ID'DATABASE_ID با شناسه پایگاه داده جایگزین کنید. برای پایگاه داده پیش فرض از
'(default)'
استفاده کنید.Firebase CLI
از دستورfirebase firestore:backups:schedules:list
استفاده کنید.firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'DATABASE_ID با شناسه پایگاه داده جایگزین کنید. برای پایگاه داده پیش فرض از
'(default)'
استفاده کنید.برنامه پشتیبان گیری را شرح دهید
برای بازیابی اطلاعات مربوط به زمانبندی پشتیبانگیری، از یکی از روشهای زیر استفاده کنید:
gcloud
از دستورgcloud firestore backups schedules describe
استفاده کنید:gcloud firestore backups schedules describe \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_IDموارد زیر را جایگزین کنید:
- DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیش فرض روی
'(default)'
تنظیم کنید. - BACKUP_SCHEDULE_ID : شناسه یک برنامه پشتیبان. وقتی همه برنامههای پشتیبانگیری را فهرست میکنید، میتوانید شناسه هر برنامه پشتیبانگیری را مشاهده کنید.
یک برنامه پشتیبان را به روز کنید
برای به روز رسانی دوره نگهداری یک برنامه پشتیبان، از یکی از روش های زیر استفاده کنید:
gcloud
از دستورgcloud firestore backups schedules update
استفاده کنید:gcloud firestore backups schedules update \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID \ --retention=RETENTION_PERIODموارد زیر را جایگزین کنید:
- DATABASE_ID : شناسه پایگاه داده برای پشتیبان گیری. برای پایگاه داده پیش فرض روی
'(default)'
تنظیم کنید. - BACKUP_SCHEDULE_ID : شناسه یک برنامه پشتیبان. وقتی همه برنامههای پشتیبانگیری را فهرست میکنید، میتوانید شناسه هر برنامه پشتیبانگیری را مشاهده کنید.
- RETENTION_PERIOD : این مقدار را تا 14 هفته (
14w
) تنظیم کنید.
Firebase CLI
از دستورfirebase firestore:backups:schedules:update
استفاده کنید:firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIODموارد زیر را جایگزین کنید:
- BACKUP_SCHEDULE : نام منبع کامل یک برنامه پشتیبان. وقتی همه برنامههای پشتیبانگیری را فهرست میکنید، میتوانید نام هر برنامه پشتیبانگیری را مشاهده کنید.
- RETENTION_PERIOD : این مقدار را تا 14 هفته (
14w
) تنظیم کنید.
می توانید دوره نگهداری یک برنامه پشتیبان را به روز کنید، اما نمی توانید تکرار آن را به روز کنید. اگر به یک برنامه پشتیبان گیری با تکرار متفاوت نیاز دارید، اگر دیگر نیازی به برنامه پشتیبان گیری نیست، آن را حذف کنید و یک برنامه پشتیبان جدید با تکرار مورد نظر ایجاد کنید.
یک برنامه پشتیبان را حذف کنید
برای حذف یک برنامه پشتیبان، از یکی از روش های زیر استفاده کنید:
gcloud
از دستورgcloud firestore backups schedules delete
استفاده کنید:gcloud firestore backups schedules delete \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_IDموارد زیر را جایگزین کنید:
- DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیشفرض روی
'(default)'
تنظیم کنید. - BACKUP_SCHEDULE_ID : شناسه یک برنامه پشتیبان. وقتی همه برنامههای پشتیبانگیری را فهرست میکنید، میتوانید شناسه هر برنامه پشتیبانگیری را مشاهده کنید.
Firebase CLI
از دستورfirebase firestore:backups:schedules:delete
استفاده کنید:firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULEموارد زیر را جایگزین کنید:
- BACKUP_SCHEDULE : نام منبع کامل یک برنامه پشتیبان. وقتی همه برنامههای پشتیبانگیری را فهرست میکنید، میتوانید نام هر برنامه پشتیبانگیری را مشاهده کنید.
توجه داشته باشید که با حذف یک برنامه پشتیبان، نسخههای پشتیبان ایجاد شده توسط این برنامه حذف نمیشوند. میتوانید منتظر بمانید تا پس از دوره نگهداری آنها منقضی شود، یا برای حذف دستی یک نسخه پشتیبان، به حذف نسخه پشتیبان مراجعه کنید.
مدیریت پشتیبان گیری
لیست نسخه های پشتیبان
برای فهرست کردن نسخههای پشتیبان موجود، از یکی از روشهای زیر استفاده کنید:
gcloud
از دستورgcloud firestore backups list
استفاده کنید:gcloud firestore backups list \ --format="table(name, database, state)"پرچم
--format="table(name, database, state)"
خروجی را به فرمتی قابل خواندن تر فرمت می کند. برای فهرست کردن فقط نسخههای پشتیبان از یک مکان خاص، از پرچم --location
استفاده کنید:gcloud firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"
LOCATION
با نام مکان Cloud Firestore جایگزین کنید.Firebase CLI
از دستورfirebase firestore:backups:list
استفاده کنید:firebase firestore:backups:listبرای فهرست کردن فقط نسخههای پشتیبان از یک مکان خاص، از پرچم
--location
استفاده کنید:firebase firestore:backups:list \ --location=LOCATION
LOCATION
با نام مکان Cloud Firestore جایگزین کنید.یک نسخه پشتیبان را توضیح دهید
برای مشاهده جزئیات مربوط به پشتیبان گیری، از یکی از روش های زیر استفاده کنید:
gcloud
از دستورgcloud firestore backups describe
استفاده کنید:gcloud firestore backups describe \ --location=LOCATION \ --backup=BACKUP_IDموارد زیر را جایگزین کنید:
- LOCATION : مکان پایگاه داده.
- BACKUP_ID : شناسه یک نسخه پشتیبان. وقتی همه نسخههای پشتیبان را فهرست میکنید، میتوانید شناسه هر پشتیبان را مشاهده کنید.
Firebase CLI
از دستورfirebase firestore:backups:get
استفاده کنید:firebase firestore:backups:get BACKUPموارد زیر را جایگزین کنید:
- BACKUP : نام منبع کامل یک نسخه پشتیبان. وقتی همه نسخههای پشتیبان را فهرست میکنید ، میتوانید نام هر نسخه پشتیبان را مشاهده کنید.
پشتیبان را حذف کنید
gcloud
از دستورgcloud firestore backups delete
استفاده کنید:gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_IDموارد زیر را جایگزین کنید:
- LOCATION : مکان پایگاه داده.
- BACKUP_ID : شناسه یک نسخه پشتیبان. وقتی همه نسخههای پشتیبان را فهرست میکنید، میتوانید شناسه هر پشتیبان را مشاهده کنید.
Firebase CLI
از دستورfirebase firestore:backups:delete
استفاده کنید:firebase firestore:backups:delete \ BACKUPموارد زیر را جایگزین کنید:
- BACKUP : نام منبع کامل یک نسخه پشتیبان. وقتی همه نسخههای پشتیبان را فهرست میکنید ، میتوانید نام هر نسخه پشتیبان را مشاهده کنید.
بازیابی اطلاعات از یک نسخه پشتیبان از پایگاه داده
عملیات بازیابی داده ها را از یک نسخه پشتیبان در یک پایگاه داده جدید Cloud Firestore می نویسد.
برای شروع عملیات بازیابی، از یکی از روش های زیر استفاده کنید:
gcloud
از دستورgcloud firestore databases restore
استفاده کنید:gcloud firestore databases restore \ --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \ --destination-database='DATABASE_ID'موارد زیر را جایگزین کنید:
- PROJECT_ID : شناسه پروژه شما.
- LOCATION : محل پشتیبان گیری از پایگاه داده و مکان پایگاه داده جدید ایجاد شده برای داده های بازیابی شده.
- BACKUP_ID : شناسه یک نسخه پشتیبان. وقتی همه نسخههای پشتیبان را فهرست میکنید، میتوانید شناسه هر پشتیبان را مشاهده کنید.
- DATABASE_ID : شناسه پایگاه داده برای پایگاه داده جدید. شما نمی توانید از شناسه پایگاه داده ای که قبلاً در حال استفاده است استفاده کنید.
metadata
، name
و اجزای response
خواهد بود: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
شامل یک جزء progressPercentage
است که پیشرفت تخمینی بازیابی را تا کنون شرح میدهد و یک operationState
که وضعیت کلی بازیابی را مشخص میکند. برای بازیابی مجدد این اطلاعات، gcloud firestore operations list
استفاده کنید:gcloud firestore operations list --database=DATABASE_IDیا با استفاده از فیلد
name
از خروجی شرح داده شده در بالا، با gcloud firestore operations describe
:gcloud firestore operations describe OPERATION_NAME
Firebase CLI
از دستورfirebase firestore:databases:restore
استفاده کنید:firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'موارد زیر را جایگزین کنید:
- BACKUP : نام منبع کامل یک نسخه پشتیبان. وقتی همه نسخههای پشتیبان را فهرست میکنید ، میتوانید نام هر نسخه پشتیبان را مشاهده کنید.
- DATABASE_ID : شناسه پایگاه داده برای پایگاه داده جدید. شما نمی توانید از شناسه پایگاه داده ای که قبلاً در حال استفاده است استفاده کنید.