| ينطبق ذلك على إصدارَي Firestore Standard وFirestore Enterprise. |
توضّح هذه الصفحة كيفية استخدام ميزة النُسخ الاحتياطية المجدوَلة في Cloud Firestore. استخدِم النُسخ الاحتياطية لحماية بياناتك من تلف البيانات على مستوى التطبيق أو من حذف البيانات عن طريق الخطأ.
تتيح لك النُسخ الاحتياطية ضبط جداول زمنية للاحتفاظ بنُسخ احتياطية يومية أو أسبوعية من قاعدة البيانات المحدّدة. يمكنك بعد ذلك استخدام هذه النُسخ الاحتياطية لاستعادة البيانات إلى قاعدة بيانات جديدة.
لمحة عن النُسخ الاحتياطية
النسخة الاحتياطية هي نسخة متسقة من قاعدة البيانات في وقت معيّن. تحتوي النسخة الاحتياطية على جميع البيانات وإعدادات الفهرس في تلك اللحظة.
لا تحتوي النسخة الاحتياطية على سياسات مدة صلاحية قاعدة البيانات. توجد النسخة الاحتياطية في الموقع نفسه الذي توجد فيه قاعدة البيانات المصدر.تتوفّر للنُسخ الاحتياطية فترة احتفاظ قابلة للضبط، ويتم تخزينها إلى أن تنتهي صلاحية فترة الاحتفاظ أو إلى أن تحذف النسخة الاحتياطية. لا يؤدي حذف قاعدة البيانات المصدر إلى حذف النُسخ الاحتياطية ذات الصلة تلقائيًا.
يخزّن Cloud Firestore البيانات الوصفية المرتبطة بالنُسخ الاحتياطية والجداول الزمنية للنُسخ الاحتياطية المرتبطة بقاعدة بيانات. يحتفظ Cloud Firestore بهذه البيانات الوصفية إلى أن تنتهي صلاحية جميع النُسخ الاحتياطية لقاعدة البيانات أو يتم حذفها.
لا يؤثر إنشاء النُسخ الاحتياطية أو الاحتفاظ بها في أداء عمليات القراءة أو الكتابة في قاعدة البيانات المباشرة.
التكاليف
عند استخدام النُسخ الاحتياطية، يتم تحصيل رسوم منك مقابل ما يلي:
- مقدار مساحة التخزين التي تستخدمها كل نسخة احتياطية
- بالنسبة إلى عملية الاستعادة، يتم تحصيل الرسوم منك استنادًا إلى حجم النسخة الاحتياطية.
لمزيد من التفاصيل والأسعار الدقيقة، يُرجى الاطّلاع على صفحة الأسعار.
قبل البدء
تتطلّب هذه الميزة خطة Blaze المَرِنة.الأدوار المطلوبة
للحصول على الأذونات التي تحتاجها لإدارة النُسخ الاحتياطية وجداولها الزمنية، اطلب من المشرف منحك دورًا واحدًا أو أكثر من أدوار "إدارة الهوية وإمكانية الوصول" التالية:
-
roles/datastore.owner: وصول كامل إلى قاعدة بيانات Cloud Firestore -
roles/datastore.backupsAdmin: إذن بالقراءة والكتابة في النُسخ الاحتياطية -
roles/datastore.backupsViewer: إذن بالوصول للقراءة إلى النُسخ الاحتياطية -
roles/datastore.backupSchedulesAdmin: إذن بالوصول للقراءة والكتابة إلى جداول النُسخ الاحتياطية -
roles/datastore.backupSchedulesViewer: إذن بالوصول للقراءة إلى جداول النُسخ الاحتياطية -
roles/datastore.restoreAdmin: أذونات بدء عمليات الاستعادة
إنشاء جداول الاحتفاظ بنسخة احتياطية وإدارتها
توضّح الأمثلة التالية كيفية إعداد جدول زمني للاحتفاظ بنسخة احتياطية. لكل قاعدة بيانات، يمكنك ضبط جدول زمني واحد كحد أقصى للاحتفاظ بنسخة احتياطية يومية وجدول زمني واحد كحد أقصى للاحتفاظ بنسخة احتياطية أسبوعية. لا يمكنك ضبط جداول زمنية متعددة للنسخ الاحتياطي الأسبوعي لأيام مختلفة من الأسبوع.
لا يمكنك ضبط الوقت المحدّد من اليوم للاحتفاظ بنسخة احتياطية. يتم الاحتفاظ بالنُسخ الاحتياطية في أوقات مختلفة كل يوم. بالنسبة إلى جداول النُسخ الاحتياطية الأسبوعية، يمكنك ضبط يوم من الأسبوع لإجراء نسخة احتياطية.
إنشاء جدول زمني للاحتفاظ بنسخة احتياطية
استخدِم إحدى الأدوات التالية لإنشاء جدول زمني للاحتفاظ بنسخة احتياطية.
إنشاء جدول زمني يومي للاحتفاظ بنسخة احتياطية
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود النُسخ الاحتياطية المجدوَلة، انقر على عرض النُسخ الاحتياطية أو تعديل الإعدادات، حسب توفّر جدول زمني للنُسخ الاحتياطية.
- انقر على تعديل لتعديل إعدادات الاستجابة للكوارث.
- ضَع علامة في مربّع الاختيار يوميًا، واضبط فترة الاحتفاظ بالبيانات، ثم انقر على حفظ.
Firebase CLI
لإنشاء جدول زمني للاحتفاظ بنسخة احتياطية من قاعدة بيانات، استخدِم الأمر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: اضبط هذه السمة على قيمة تصل إلى 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.
إنشاء جدول زمني أسبوعي للاحتفاظ بنسخة احتياطية
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود النُسخ الاحتياطية المجدوَلة، انقر على عرض النُسخ الاحتياطية أو تعديل الإعدادات، حسب توفّر جدول زمني للنُسخ الاحتياطية.
- انقر على تعديل لتعديل إعدادات الاستجابة للكوارث.
- ضَع علامة في المربّع أسبوعيًا، واختَر يومًا للاحتفاظ بنسخة احتياطية، واضبط فترة الاحتفاظ بالبيانات، ثم انقر على حفظ.
Firebase CLI
لإنشاء جدول زمني أسبوعي للاحتفاظ بنسخة احتياطية، اضبط العلامة--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: اضبط هذه السمة على قيمة تصل إلى 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.
عرض جداول النُسخ الاحتياطية
لعرض جميع جداول النُسخ الاحتياطية لقاعدة بيانات، استخدِم إحدى الطرق التالية:
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود النُسخ الاحتياطية المجدوَلة، انقر على عرض النُسخ الاحتياطية أو تعديل الإعدادات، حسب توفّر جدول زمني للنُسخ الاحتياطية.
- ستفتح صفحة التعافي من الكوارث. توضّح هذه الصفحة جداول النُسخ الاحتياطية وتعرض النُسخ الاحتياطية المتاحة.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:schedules:list.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'
'(default)' لقاعدة البيانات التلقائية.
وصف الجدول الزمني للاحتفاظ بنسخة احتياطية
لاسترداد معلومات عن جدول زمني للاحتفاظ بنسخة احتياطية، استخدِم إحدى الطرق التالية:
Google Cloud Console
في وحدة تحكّم 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 Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود النُسخ الاحتياطية المجدوَلة، انقر على عرض النُسخ الاحتياطية أو تعديل الإعدادات.
- انقر على تعديل لتعديل إعدادات الاستجابة للكوارث.
- عدِّل إعدادات جدول الاحتفاظ بنسخة احتياطية، ثم انقر على حفظ.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:schedules:update:
firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIOD
- BACKUP_SCHEDULE: اسم المورد الكامل لجدول الاحتفاظ بنسخة احتياطية يمكنك الاطّلاع على اسم كل جدول زمني للاحتفاظ بنسخة احتياطية عند عرض جميع الجداول الزمنية للاحتفاظ بنسخة احتياطية.
- RETENTION_PERIOD: اضبط هذه السمة على قيمة تصل إلى 14 أسبوعًا (
14w).
يمكنك تعديل فترة الاحتفاظ بالبيانات في جدول زمني للاحتفاظ بنسخة احتياطية، ولكن لا يمكنك تعديل تكرارها. إذا كنت بحاجة إلى جدول زمني للاحتفاظ بنسخة احتياطية مع تكرار مختلف، احذف الجدول الزمني القديم إذا لم تعد بحاجة إليه وأنشئ جدولاً زمنيًا جديدًا مع التكرار المفضّل.
حذف جدول زمني للاحتفاظ بنسخة احتياطية
لحذف جدول زمني للاحتفاظ بنسخة احتياطية، استخدِم إحدى الطرق التالية:
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود النُسخ الاحتياطية المجدوَلة، انقر على عرض النُسخ الاحتياطية أو تعديل الإعدادات، حسب توفّر جدول زمني للنُسخ الاحتياطية.
- انقر على تعديل لتعديل إعدادات الاستجابة للكوارث.
- عدِّل إعدادات جدول الاحتفاظ بنسخة احتياطية، ثم انقر على حفظ.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:schedules:delete:
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULE
- BACKUP_SCHEDULE: اسم المورد الكامل لجدول زمني للاحتفاظ بنسخة احتياطية يمكنك الاطّلاع على اسم كل جدول زمني للاحتفاظ بنسخة احتياطية عند عرض جميع الجداول الزمنية للاحتفاظ بنسخة احتياطية.
يُرجى العِلم أنّ حذف جدول زمني للاحتفاظ بنسخة احتياطية لن يؤدي إلى حذف النُسخ الاحتياطية التي تم إنشاؤها من خلال هذا الجدول الزمني. يمكنك الانتظار حتى تنتهي صلاحيتها بعد فترة الاحتفاظ بالبيانات، أو لحذف نسخة احتياطية يدويًا، يُرجى الاطّلاع على حذف النسخة الاحتياطية.
إدارة النُسخ الاحتياطية
عرض النُسخ الاحتياطية
لإدراج النُسخ الاحتياطية المتاحة، استخدِم إحدى الطرق التالية:
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود النُسخ الاحتياطية المجدوَلة، انقر على عرض النُسخ الاحتياطية أو تعديل الإعدادات، حسب توفّر جدول زمني للنُسخ الاحتياطية.
- انقر على تعديل لتعديل إعدادات الاستجابة للكوارث.
- عدِّل إعدادات جدول الاحتفاظ بنسخة احتياطية، ثم انقر على حفظ.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:list:
firebase firestore:backups:list
--location:
firebase firestore:backups:list \ --location=LOCATION
LOCATION باسم موقع جغرافي في Cloud Firestore.
وصف النسخة الاحتياطية
لعرض تفاصيل حول نسخة احتياطية، استخدِم إحدى الطرق التالية:
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود النُسخ الاحتياطية المجدوَلة، انقر على عرض النُسخ الاحتياطية أو تعديل الإعدادات، حسب توفّر جدول زمني للنُسخ الاحتياطية.
- ستفتح صفحة التعافي من الكوارث. توضّح هذه الصفحة جداول النُسخ الاحتياطية وتعرض النُسخ الاحتياطية المتاحة.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:get:
firebase firestore:backups:get BACKUP
- BACKUP: اسم المورد الكامل لنسخة احتياطية يمكنك الاطّلاع على اسم كل نسخة احتياطية عند عرض قائمة بجميع النُسخ الاحتياطية.
حذف النسخة الاحتياطية
لحذف نسخة احتياطية، استخدِم إحدى الطرق التالية.
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود النُسخ الاحتياطية المجدوَلة، انقر على عرض النُسخ الاحتياطية أو تعديل الإعدادات، حسب توفّر جدول زمني للنُسخ الاحتياطية. ستفتح صفحة التعافي من الكوارث. توضّح هذه الصفحة جداول النُسخ الاحتياطية وتعرض النُسخ الاحتياطية المتاحة.
- في جدول النُسخ الاحتياطية، ابحث عن صف نسخة احتياطية، وفي عمود الإجراءات، انقر على عرض المزيد(). انقر على حذف.
- أكِّد الإجراء باستخدام حقل النص وانقر على حذف.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:delete:
firebase firestore:backups:delete \ BACKUP
- BACKUP: اسم المورد الكامل لنسخة احتياطية يمكنك الاطّلاع على اسم كل نسخة احتياطية عند عرض قائمة بجميع النُسخ الاحتياطية.
استعادة البيانات من نسخة احتياطية من قاعدة البيانات
تؤدي عملية الاستعادة إلى كتابة البيانات من نسخة احتياطية إلى قاعدة بيانات Cloud Firestore جديدة.
لبدء عملية استعادة، استخدِم إحدى الطرق التالية:
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود النُسخ الاحتياطية المجدوَلة، انقر على عرض النُسخ الاحتياطية أو تعديل الإعدادات، حسب توفّر جدول زمني للنُسخ الاحتياطية. ستفتح صفحة التعافي من الكوارث. توضّح هذه الصفحة جداول النُسخ الاحتياطية وتعرض النُسخ الاحتياطية المتاحة.
- في جدول النُسخ الاحتياطية، ابحث عن صف نسخة احتياطية، وفي عمود الإجراءات، انقر على عرض المزيد()، ثم انقر على استعادة باستخدام Cloud Shell.
-
ستفتح لوحة "Cloud Shell" مع أمر "gcloud CLI" لاستعادة البيانات من النسخة الاحتياطية المحدّدة. استبدِل ID_OF_NEW_DATABASE بمعرّف قاعدة البيانات وشغِّل الأمر.
يؤدي تشغيل الأمر إلى عرض ردّ يتضمّن مزيدًا من المعلومات حول العملية. ستظهر قاعدة البيانات قريبًا في قائمة قواعد البيانات. ستستغرق عملية الاستعادة بعض الوقت ويجب إكمالها قبل أن تصبح قاعدة البيانات متاحة.
Firebase CLI
استخدِم الأمرfirebase firestore:databases:restore:
firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'
- BACKUP: اسم المورد الكامل لنسخة احتياطية يمكنك الاطّلاع على اسم كل نسخة احتياطية عند عرض قائمة بجميع النُسخ الاحتياطية.
- DATABASE_ID: معرّف قاعدة البيانات لقاعدة البيانات الجديدة لا يمكنك استخدام معرّف قاعدة بيانات مستخدَم حاليًا.
القيود
لا تؤدي عملية الاستعادة إلى استعادة بيانات بحث App Engine أو كيانات blob من قاعدة بيانات (default). هذه البيانات صالحة فقط لقاعدة بيانات (default)، ولن تكون مفيدة إذا استعدت البيانات من (default) إلى قاعدة بيانات لا تتوافق مع هذه البيانات، لذلك يتم استبعادها من النُسخ الاحتياطية.
ما يجب فعله بعد الاستعادة
بعد الانتهاء من الاستعادة، عليك إجراء ما يلي:
تأكَّد من تطبيق عناصر التحكّم المناسبة في إدارة الهوية وإمكانية الوصول على قاعدة بياناتك الجديدة.
إذا كنت قد استخدمت سابقًا سياسات TTL، أعِد تطبيقها على قاعدة البيانات الجديدة. لا يتم تضمين سياسات TTL في النُسخ الاحتياطية ولا تتم إعادة تطبيقها تلقائيًا على قواعد البيانات التي تمت استعادتها.