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

این صفحه نحوه استفاده از ویژگی پشتیبان گیری برنامه ریزی شده Cloud Firestore را شرح می دهد. از پشتیبان‌گیری برای محافظت از داده‌های خود در برابر خرابی داده‌های سطح برنامه یا حذف تصادفی داده‌ها استفاده کنید.

پشتیبان‌گیری به شما امکان می‌دهد برنامه‌های پشتیبان‌گیری را برای تهیه نسخه پشتیبان روزانه یا هفتگی از پایگاه داده مشخص شده پیکربندی کنید. سپس می توانید از این نسخه های پشتیبان برای بازیابی داده ها به یک پایگاه داده جدید استفاده کنید.

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

یک نسخه پشتیبان یک کپی ثابت از پایگاه داده در یک نقطه از زمان است. نسخه پشتیبان شامل تمام داده ها و تنظیمات فهرست در آن نقطه از زمان است. یک نسخه پشتیبان شامل زمان پایگاه داده تا خط مشی های زنده نیست. یک نسخه پشتیبان در همان مکان پایگاه داده منبع قرار دارد.

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

Cloud Firestore ابرداده های مربوط به پشتیبان گیری و برنامه های پشتیبان گیری مربوط به پایگاه داده را ذخیره می کند. Cloud Firestore این ابرداده را تا زمانی که تمام نسخه‌های پشتیبان برای پایگاه داده منقضی شده یا حذف شوند، حفظ می‌کند.

ایجاد یا حفظ نسخه پشتیبان بر عملکرد خواندن یا نوشتن در پایگاه داده زنده شما تأثیری ندارد.

هزینه ها

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

  • مقدار فضای ذخیره‌سازی استفاده شده توسط هر نسخه پشتیبان.
  • برای عملیات بازیابی، بر اساس اندازه نسخه پشتیبان هزینه دریافت می‌کنید.

برای جزئیات بیشتر و نرخ های دقیق، صفحه قیمت را ببینید.

قبل از اینکه شروع کنی

این ویژگی به برنامه قیمت گذاری Blaze نیاز دارد.

نقش های مورد نیاز

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

  • roles/datastore.owner : دسترسی کامل به پایگاه داده Cloud Firestore
  • نقش‌های زیر نیز موجود هستند اما در کنسول Google Cloud Platform قابل مشاهده نیستند. از Google Cloud CLI برای تخصیص این نقش‌ها استفاده کنید :

    • roles/datastore.backupsAdmin : دسترسی خواندن و نوشتن به نسخه‌های پشتیبان
    • roles/datastore.backupsViewer : خواندن دسترسی به نسخه پشتیبان
    • roles/datastore.backupSchedulesAdmin : دسترسی خواندن و نوشتن به برنامه های پشتیبان گیری
    • roles/datastore.backupSchedulesViewer : خواندن دسترسی به برنامه های پشتیبان
    • roles/datastore.restoreAdmin : مجوزهایی برای شروع عملیات بازیابی

ایجاد و مدیریت برنامه های پشتیبان

مثال های زیر نحوه تنظیم یک برنامه پشتیبان را نشان می دهد. برای هر پایگاه داده، می توانید حداکثر یک برنامه پشتیبان گیری روزانه و حداکثر یک برنامه پشتیبان گیری هفتگی را پیکربندی کنید. شما نمی توانید چندین برنامه پشتیبان گیری هفتگی را برای روزهای مختلف هفته پیکربندی کنید.

شما نمی توانید زمان دقیق روز پشتیبان گیری را پیکربندی کنید. پشتیبان گیری در زمان های مختلف هر روز گرفته می شود. برای برنامه‌های پشتیبان‌گیری هفتگی، می‌توانید روز هفته را برای تهیه نسخه پشتیبان پیکربندی کنید.

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

برای ایجاد یک زمان‌بندی پشتیبان‌گیری برای پایگاه داده، از دستور gcloud alpha firestore backups schedules create استفاده کنید.

یک برنامه پشتیبان روزانه ایجاد کنید

برای ایجاد یک برنامه پشتیبان روزانه، پرچم --recurrence را روی daily تنظیم کنید:

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

موارد زیر را جایگزین کنید:

  • DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیش فرض روی (default) تنظیم کنید.
  • RETENTION_PERIOD : این مقدار را تا 14 هفته ( 14w ) تنظیم کنید.

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

برای ایجاد یک برنامه پشتیبان هفتگی، پرچم --recurrence را روی weekly تنظیم کنید:

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

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

برای فهرست کردن همه برنامه‌های پشتیبان‌گیری برای یک پایگاه داده، از دستور gcloud alpha firestore backups schedules list استفاده کنید. این دستور اطلاعات مربوط به تمام برنامه های پشتیبان را برمی گرداند.

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

DATABASE_ID با شناسه پایگاه داده جایگزین کنید. از (default) برای پایگاه داده پیش فرض استفاده کنید.

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

برای بازیابی اطلاعات مربوط به زمان‌بندی پشتیبان‌گیری، از دستور gcloud alpha firestore backups schedules describe استفاده کنید:

gcloud alpha firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

موارد زیر را جایگزین کنید:

  • DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیش فرض روی (default) تنظیم کنید.
  • BACKUP_SCHEDULE_ID : شناسه یک برنامه پشتیبان. وقتی همه برنامه‌های پشتیبان‌گیری را فهرست می‌کنید، می‌توانید شناسه هر برنامه پشتیبان‌گیری را مشاهده کنید.

یک برنامه پشتیبان را به روز کنید

برای به روز رسانی دوره نگهداری یک برنامه پشتیبان، از دستور gcloud alpha firestore backups schedules update استفاده کنید:

gcloud alpha 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 ) تنظیم کنید.

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

برای حذف یک برنامه پشتیبان، از دستور gcloud alpha firestore backups schedules delete استفاده کنید:

gcloud alpha firestore backups schedules delete \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

موارد زیر را جایگزین کنید:

  • DATABASE_ID : شناسه پایگاه داده برای تهیه نسخه پشتیبان. برای پایگاه داده پیش فرض روی (default) تنظیم کنید.
  • BACKUP_SCHEDULE_ID : شناسه یک برنامه پشتیبان. وقتی همه برنامه‌های پشتیبان‌گیری را فهرست می‌کنید، می‌توانید شناسه هر برنامه پشتیبان‌گیری را مشاهده کنید.

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

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

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

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

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

پرچم --format="table(name, database, state)" خروجی را به فرمتی قابل خواندن تر فرمت می کند.

برای فهرست کردن فقط نسخه‌های پشتیبان از یک مکان خاص، از پرچم --location استفاده کنید:

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

LOCATION با نام مکان Cloud Firestore جایگزین کنید.

یک نسخه پشتیبان را توضیح دهید

برای مشاهده جزئیات مربوط به یک نسخه پشتیبان، از دستور gcloud alpha firestore backups describe استفاده کنید:

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

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

برای حذف یک نسخه پشتیبان، از دستور gcloud alpha firestore backups delete استفاده کنید:

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

بازیابی اطلاعات از یک نسخه پشتیبان از پایگاه داده

عملیات بازیابی داده ها را از یک نسخه پشتیبان در یک پایگاه داده جدید Cloud Firestore می نویسد. برای شروع عملیات بازیابی، از دستور gcloud alpha firestore databases restore استفاده کنید:

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