پشتیبان گیری و بازیابی اطلاعات

این صفحه نحوه استفاده از ویژگی پشتیبان گیری برنامه ریزی شده 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 از نوع google_firestore_database استفاده کنید.
  • RETENTION_PERIOD_SECONDS : این مقدار را بر حسب ثانیه تنظیم کنید و سپس "s" را در نظر بگیرید. حداکثر مقدار 8467200s (14 هفته) است.

یک برنامه پشتیبان هفتگی ایجاد کنید

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 از نوع google_firestore_database استفاده کنید.
  • RETENTION_PERIOD_SECONDS : این مقدار را بر حسب ثانیه تنظیم کنید و سپس "s" را در نظر بگیرید. حداکثر مقدار 8467200s (14 هفته) است.
  • DAY : روز هفته برای گرفتن نسخه پشتیبان. روی یکی از موارد زیر تنظیم کنید:
    • SUNDAY برای یکشنبه
    • MONDAY برای دوشنبه
    • TUESDAY برای سه شنبه
    • WEDNESDAY برای چهارشنبه
    • THURSDAY برای پنجشنبه
    • FRIDAY برای جمعه
    • SATURDAY برای شنبه

فهرست برنامه های پشتیبان گیری

برای فهرست کردن تمام برنامه های پشتیبان گیری برای یک پایگاه داده، از یکی از روش های زیر استفاده کنید:

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
موارد زیر را جایگزین کنید:

می توانید دوره نگهداری یک برنامه پشتیبان را به روز کنید، اما نمی توانید تکرار آن را به روز کنید. اگر به یک برنامه پشتیبان گیری با تکرار متفاوت نیاز دارید، اگر دیگر نیازی به برنامه پشتیبان گیری نیست، آن را حذف کنید و یک برنامه پشتیبان جدید با تکرار مورد نظر ایجاد کنید.

یک برنامه پشتیبان را حذف کنید

برای حذف یک برنامه پشتیبان، از یکی از روش های زیر استفاده کنید:

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
موارد زیر را جایگزین کنید:

توجه داشته باشید که حذف یک برنامه پشتیبان، پشتیبان‌هایی را که قبلاً توسط این زمان‌بندی ایجاد شده‌اند حذف نمی‌کند. می توانید منتظر بمانید تا پس از مدت نگهداری آنها منقضی شود، یا برای حذف دستی یک نسخه پشتیبان، به حذف نسخه پشتیبان مراجعه کنید.

مدیریت پشتیبان گیری

لیست نسخه های پشتیبان

برای فهرست کردن نسخه‌های پشتیبان موجود، از یکی از روش‌های زیر استفاده کنید:

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
موارد زیر را جایگزین کنید:
Firebase CLI
از دستور firebase firestore:backups:get استفاده کنید:
firebase firestore:backups:get BACKUP
موارد زیر را جایگزین کنید:

پشتیبان را حذف کنید

برای حذف یک نسخه پشتیبان از یکی از روش های زیر استفاده کنید. هشدار: شما نمی توانید یک نسخه پشتیبان حذف شده را بازیابی کنید.
gcloud
از دستور gcloud firestore backups delete استفاده کنید:
gcloud firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID
موارد زیر را جایگزین کنید:
Firebase CLI
از دستور firebase firestore:backups:delete استفاده کنید:
firebase firestore:backups:delete \
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 : شناسه پایگاه داده برای پایگاه داده جدید. شما نمی توانید از شناسه پایگاه داده ای که قبلاً در حال استفاده است استفاده کنید.