| مربوط به Firestore Standard edition و Firestore Enterprise edition. |
این صفحه نحوه استفاده از ویژگی پشتیبانگیری زمانبندیشده Cloud Firestore را شرح میدهد. از نسخههای پشتیبان برای محافظت از دادههایتان دربرابر خرابی دادهها در سطح برنامه یا حذف تصادفی دادهها استفاده کنید.
پشتیبانگیریها به شما امکان میدهند زمانبندیهای پشتیبانگیری را برای گرفتن پشتیبانهای روزانه یا هفتگی از پایگاه داده مشخصشده پیکربندی کنید. سپس میتوانید از این نسخههای پشتیبان برای بازیابی دادهها در پایگاه داده جدید استفاده کنید.
درباره نسخههای پشتیبان
پشتیبانگیری نسخهای سازگار از پایگاه داده در یک نقطه زمانی است. پشتیبانگیری شامل همه دادهها و پیکربندیهای نمایه در آن نقطه زمانی است.
نسخه پشتیبان حاوی خطمشیهای زمان بقای پایگاه داده نیست. نسخه پشتیبان در همان مکان پایگاه داده منبع قرار دارد.نسخههای پشتیبان دوره نگهداری قابلپیکربندی دارند و تا زمانی که دوره نگهداری منقضی شود یا تا زمانی که نسخه پشتیبان را حذف کنید ذخیره میشوند. حذف پایگاه داده منبع بهطور خودکار نسخههای پشتیبان مرتبط را حذف نمیکند.
Cloud Firestore فرادادههای مربوط به نسخههای پشتیبان و زمانبندیهای پشتیبانگیری مربوط به پایگاه داده را ذخیره میکند. Cloud Firestore این فراداده را تا زمانی که همه نسخههای پشتیبان پایگاه داده منقضی یا حذف شوند حفظ میکند.
ایجاد یا حفظ نسخههای پشتیبان بر عملکرد خواندن یا نوشتن در پایگاه داده زنده شما تأثیری نمیگذارد.
هزینهها
وقتی از نسخههای پشتیبان استفاده میکنید، هزینه موارد زیر از شما کسر میشود:
- مقدار فضای ذخیرهسازیای که هر نسخه پشتیبان استفاده میکند.
- برای عملیات بازیابی، براساس اندازه نسخه پشتیبان از شما هزینه کسر میشود.
برای جزئیات بیشتر و نرخهای دقیق، به صفحه قیمتگذاری مراجعه کنید.
قبل از شروع
این ویژگی به طرح قیمتگذاری Blaze نیاز دارد.نقشهای الزامی
برای دریافت اجازههایی که برای مدیریت نسخههای پشتیبان و زمانبندیهای پشتیبانگیری نیاز دارید، از سرپرستتان بخواهید یک یا چند مورد از نقشهای «مدیریت هویت و دسترسیها» زیر را به شما اعطا کند:
roles/datastore.owner: دسترسی کامل به پایگاه داده Cloud Firestoreroles/datastore.backupsAdmin: دسترسی خواندن و نوشتن به نسخههای پشتیبان-
roles/datastore.backupsViewer: دسترسی خواندن به نسخههای پشتیبان -
roles/datastore.backupSchedulesAdmin: دسترسی خواندن و نوشتن به زمانبندیهای پشتیبانگیری roles/datastore.backupSchedulesViewer: دسترسی خواندن به زمانبندیهای پشتیبانگیریroles/datastore.restoreAdmin: اجازههای شروع عملیات بازیابی
ایجاد و مدیریت زمانبندیهای پشتیبانگیری
نمونههای زیر نحوه راهاندازی زمانبندی پشتیبانگیری را نشان میدهد. برای هر پایگاه داده، میتوانید حداکثر یک زمانبندی پشتیبانگیری روزانه و حداکثر یک زمانبندی پشتیبانگیری هفتگی پیکربندی کنید. نمیتوانید چند زمانبندی پشتیبانگیری هفتگی برای روزهای مختلف هفته پیکربندی کنید.
نمیتوانید زمان دقیق پشتیبانگیری را در طول روز پیکربندی کنید. پشتیبانگیری هر روز در زمانهای مختلفی انجام میشود. برای زمانبندیهای پشتیبانگیری هفتگی، میتوانید روزی از هفته را که پشتیبانگیری انجام میشود پیکربندی کنید.
ایجاد زمانبندی پشتیبانگیری
از یکی از ابزارهای زیر برای ایجاد زمانبندی پشتیبانگیری استفاده کنید.
ایجاد زمانبندی پشتیبانگیری روزانه
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، بسته به اینکه زمانبندی پشتیبانگیری وجود داشته باشد یا نه، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید.
- برای ویرایش تنظیمات بازیابی پساز فاجعه، روی ویرایش کلیک کنید.
- چارگوش انتخاب روزانه را انتخاب کنید، دوره نگهداری را تنظیم کنید، و سپس روی ذخیره کلیک کنید.
واسط خط فرمان Firebase
برای ایجاد زمانبندی پشتیبانگیری برای پایگاه داده، از فرمانfirebase firestore:databases:backups:schedules:create استفاده کنید.
برای ایجاد زمانبندی پشتیبانگیری روزانه، پرچم --recurrence را روی DAILY تنظیم کنید:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'DAILY' \ --retention RETENTION_PERIOD
موارد زیر را جایگزین کنید:
- DATABASE_ID: شناسه پایگاه داده برای پشتیبانگیری. روی
'(default)'برای پایگاه داده پیشفرض تنظیم کنید. - RETENTION_PERIOD: این مقدار را تا ۱۴ هفته (
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(۱۴ هفته) است.
google_firestore_database استفاده کنید.
ایجاد زمانبندی پشتیبانگیری هفتگی
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، بسته به اینکه زمانبندی پشتیبانگیری وجود داشته باشد یا نه، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید.
- برای ویرایش تنظیمات بازیابی پساز فاجعه، روی ویرایش کلیک کنید.
- چارگوش انتخاب هفتگی را انتخاب کنید، روز پشتیبانگیری را انتخاب کنید، دوره نگهداری را تنظیم کنید، و سپس روی ذخیره کلیک کنید.
واسط خط فرمان Firebase
برای ایجاد زمانبندی پشتیبانگیری هفتگی، پرچم--recurrence را روی WEEKLY تنظیم کنید و --day-of-week را انتخاب کنید:
firebase firestore:backups:schedules:create \ --database 'DATABASE_ID' \ --recurrence 'WEEKLY' \ --retention RETENTION_PERIOD --day-of-week DAY
- DATABASE_ID: شناسه پایگاه داده برای پشتیبانگیری. روی
'(default)'برای پایگاه داده پیشفرض تنظیم کنید. - RETENTION_PERIOD: این مقدار را تا ۱۴ هفته (
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(۱۴ هفته) است. - DAY: روزی از هفته که پشتیبانگیری انجام میشود. روی یکی از موارد زیر تنظیم کنید:
-
SUNDAYبرای یکشنبه MONDAYبرای دوشنبهTUESDAYبرای سهشنبهWEDNESDAYبرای چهارشنبه-
THURSDAYبرای پنجشنبه FRIDAYبرای جمعهSATURDAYبرای شنبه
-
google_firestore_database استفاده کنید.
فهرست کردن زمانبندیهای پشتیبانگیری
برای فهرست کردن همه زمانبندیهای پشتیبانگیری برای پایگاه داده، از یکی از روشهای زیر استفاده کنید:
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، بسته به اینکه زمانبندی پشتیبانگیری وجود داشته باشد یا نه، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید.
- صفحه بازیابی پساز فاجعه باز میشود. این صفحه زمانبندیهای پشتیبانگیری را شرح میدهد و پشتیبانگیریهای دردسترس را فهرست میکند.
واسط خط فرمان Firebase
از فرمانfirebase firestore:backups:schedules:list استفاده کنید.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'
'(default)' برای پایگاه داده پیشفرض استفاده کنید.
شرح زمانبندی پشتیبانگیری
برای بازیابی اطلاعات مربوط به زمانبندی پشتیبانگیری، از یکی از روشهای زیر استفاده کنید:
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، بسته به اینکه زمانبندی پشتیبانگیری وجود داشته باشد یا نه، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید.
- صفحه بازیابی پساز فاجعه باز میشود. این صفحه زمانبندیهای پشتیبانگیری را شرح میدهد و پشتیبانگیریهای دردسترس را فهرست میکند.
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: شناسه زمانبندی پشتیبانگیری. وقتی همه زمانبندیهای پشتیبانگیری را فهرست میکنید، میتوانید شناسه هر زمانبندی پشتیبانگیری را مشاهده کنید.
بهروزرسانی زمانبندی پشتیبانگیری
برای بهروزرسانی دوره نگهداری زمانبندی پشتیبانگیری، از یکی از روشهای زیر استفاده کنید:
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید.
- برای ویرایش تنظیمات بازیابی پساز فاجعه، روی ویرایش کلیک کنید.
- تنظیمات زمانبندی پشتیبانگیری را ویرایش کنید و سپس روی ذخیره کلیک کنید.
واسط خط فرمان Firebase
از فرمانfirebase firestore:backups:schedules:update استفاده کنید:
firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIOD
- BACKUP_SCHEDULE: نام کامل منبع زمانبندی پشتیبانگیری. وقتی همه زمانبندیهای پشتیبانگیری را فهرست کنید، میتوانید نام هر زمانبندی پشتیبانگیری را مشاهده کنید.
- RETENTION_PERIOD: این مقدار را تا ۱۴ هفته (
14w) تنظیم کنید.
میتوانید دوره نگهداری زمانبندی پشتیبانگیری را بهروز کنید، اما نمیتوانید تکرار آن را بهروز کنید. اگر به زمانبندی پشتیبانگیری با تکرار متفاوتی نیاز دارید، زمانبندی پشتیبانگیری قدیمی را درصورتیکه دیگر به آن نیاز ندارید حذف کنید و زمانبندی پشتیبانگیری جدیدی با تکرار دلخواه ایجاد کنید.
حذف کردن زمانبندی پشتیبانگیری
برای حذف زمانبندی پشتیبانگیری، از یکی از روشهای زیر استفاده کنید:
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، بسته به اینکه زمانبندی پشتیبانگیری وجود داشته باشد یا نه، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید.
- برای ویرایش تنظیمات بازیابی پساز فاجعه، روی ویرایش کلیک کنید.
- تنظیمات زمانبندی پشتیبانگیری را ویرایش کنید و سپس روی ذخیره کلیک کنید.
واسط خط فرمان Firebase
از فرمانfirebase firestore:backups:schedules:delete استفاده کنید:
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULE
- BACKUP_SCHEDULE: نام کامل منبع زمانبندی پشتیبانگیری. وقتی همه زمانبندیهای پشتیبانگیری را فهرست میکنید، میتوانید نام هر زمانبندی پشتیبانگیری را مشاهده کنید.
توجه داشته باشید که حذف زمانبندی پشتیبانگیری باعث حذف نسخههای پشتیبانی که قبلاً توسط این زمانبندی ایجاد شدهاند نمیشود. میتوانید منتظر بمانید تا پساز دوره نگهداری منقضی شوند، یا برای حذف دستی نسخه پشتیبان، به حذف نسخه پشتیبان مراجعه کنید.
مدیریت نسخههای پشتیبان
فهرست کردن نسخههای پشتیبان
برای فهرست کردن نسخههای پشتیبان دردسترس، از یکی از روشهای زیر استفاده کنید:
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، بسته به اینکه زمانبندی پشتیبانگیری وجود داشته باشد یا نه، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید.
- برای ویرایش تنظیمات بازیابی پساز فاجعه، روی ویرایش کلیک کنید.
- تنظیمات زمانبندی پشتیبانگیری را ویرایش کنید و سپس روی ذخیره کلیک کنید.
واسط خط فرمان Firebase
از فرمانfirebase firestore:backups:list استفاده کنید:
firebase firestore:backups:list
--location استفاده کنید:
firebase firestore:backups:list \ --location=LOCATION
LOCATION را با نام مکان Cloud Firestore جایگزین کنید.
توصیف کردن نسخه پشتیبان
برای مشاهده جزئیات نسخه پشتیبان، از یکی از روشهای زیر استفاده کنید:
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، بسته به اینکه زمانبندی پشتیبانگیری وجود داشته باشد یا نه، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید.
- صفحه بازیابی پساز فاجعه باز میشود. این صفحه زمانبندیهای پشتیبانگیری را شرح میدهد و پشتیبانگیریهای دردسترس را فهرست میکند.
واسط خط فرمان Firebase
از فرمانfirebase firestore:backups:get استفاده کنید:
firebase firestore:backups:get BACKUP
- BACKUP: نام کامل منبع نسخه پشتیبان. وقتی همه نسخههای پشتیبان را فهرست میکنید، میتوانید نام هر نسخه پشتیبان را مشاهده کنید.
حذف فایل پشتیبان
برای حذف نسخه پشتیبان، از یکی از روشهای زیر استفاده کنید.
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، بسته به اینکه زمانبندی پشتیبانگیری وجود داشته باشد یا نه، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید. صفحه بازیابی پساز فاجعه باز میشود. این صفحه زمانبندیهای پشتیبانگیری را شرح میدهد و پشتیبانگیریهای دردسترس را فهرست میکند.
- در جدول نسخههای پشتیبان، ردیف مربوط به نسخه پشتیبان را پیدا کنید و در ستون کنشها، روی مشاهده موارد بیشتر() کلیک کنید. روی حذف کلیک کنید.
- بااستفاده از فیلد نوشتاری، کنش را تأیید کنید و روی حذف کلیک کنید.
واسط خط فرمان Firebase
از فرمانfirebase firestore:backups:delete استفاده کنید:
firebase firestore:backups:delete \ BACKUP
- BACKUP: نام کامل منبع نسخه پشتیبان. وقتی همه نسخههای پشتیبان را فهرست میکنید، میتوانید نام هر نسخه پشتیبان را مشاهده کنید.
بازیابی دادهها از نسخه پشتیبان پایگاه داده
عملیات بازیابی، دادهها را از نسخه پشتیبان در پایگاه داده Cloud Firestore جدیدی مینویسد.
برای شروع عملیات بازیابی، از یکی از روشهای زیر استفاده کنید:
;کنسول Google Cloud
در کنسول Google Cloud، به صفحه پایگاههای داده بروید.
- در فهرست پایگاههای داده، ردیف مربوط به پایگاه داده را پیدا کنید. در ستون پشتیبانگیریهای زمانبندیشده، بسته به اینکه زمانبندی پشتیبانگیری وجود داشته باشد یا نه، روی مشاهده پشتیبانگیریها یا ویرایش تنظیمات کلیک کنید. صفحه بازیابی پساز فاجعه باز میشود. این صفحه زمانبندیهای پشتیبانگیری را شرح میدهد و پشتیبانگیریهای دردسترس را فهرست میکند.
- در جدول پشتیبانگیریها، ردیف مربوط به پشتیبانگیری را پیدا کنید و در ستون کنشها، روی مشاهده موارد بیشتر() کلیک کنید. روی بازیابی با Cloud Shell کلیک کنید.
-
پانل Cloud Shell با فرمان gcloud CLI برای بازیابی از نسخه پشتیبان انتخابشده باز میشود. ID_OF_NEW_DATABASE را با شناسهای برای پایگاه داده جایگزین کنید و فرمان را اجرا کنید.
اجرای فرمان پاسخی را با اطلاعات بیشتر درباره عملیات برمیگرداند. پایگاه داده بهزودی در فهرست پایگاههای داده شما نشان داده میشود. عملیات بازیابی مدتی طول میکشد و باید تکمیل شود تا پایگاه داده دردسترس قرار گیرد.
واسط خط فرمان Firebase
از فرمانfirebase firestore:databases:restore استفاده کنید:
firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'
- BACKUP: نام کامل منبع نسخه پشتیبان. وقتی همه نسخههای پشتیبان را فهرست میکنید، میتوانید نام هر نسخه پشتیبان را مشاهده کنید.
- DATABASE_ID: شناسه پایگاه داده برای پایگاه داده جدید. نمیتوانید از شناسه پایگاه دادهای که درحالحاضر استفاده میشود استفاده کنید.
محدودیتها
عملیات بازیابی، App Engineدادههای جستجو یا نهادهای blob را از پایگاه داده (default) بازیابی نمیکند. این داده فقط برای پایگاه داده (default) معتبر است و اگر از (default) به پایگاه دادهای که از چنین دادهای پشتیبانی نمیکند بازیابی کنید، مفید نخواهد بود، بنابراین از نسخههای پشتیبان مستثنی میشود.
کارهایی که باید پساز بازیابی انجام دهید
پساز اتمام بازیابی، باید کارهای زیر را انجام دهید:
بررسی کنید که کنترلهای IAM مناسب برای پایگاه داده جدیدتان اعمال شده باشد.
اگر قبلاً از خطمشیهای TTL استفاده کردهاید، آنها را دوباره در پایگاه داده جدید اعمال کنید. خطمشیهای TTL در نسخههای پشتیبان گنجانده نمیشوند و بهطور خودکار بر پایگاههای داده بازیابیشده اعمال نمیشوند.