| ينطبق على إصدارَي 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 Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات، حسب ما إذا كان هناك جدول زمني لعمليات الاحتفاظ بنسخ احتياطية.
- انقر على تعديل لتعديل إعدادات استرداد البيانات بعد كارثة.
- ضَع علامة في مربّع الاختيار يومي، وحدِّد فترة التخزين، ثم انقر على حفظ.
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 Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات، حسب ما إذا كان هناك جدول زمني لعمليات الاحتفاظ بنسخ احتياطية.
- انقر على تعديل لتعديل إعدادات استرداد البيانات بعد كارثة.
- ضَع علامة في مربّع الاختيار أسبوعيًا، واختَر يومًا احتياطيًا، وحدِّد فترة التخزين، ثم انقر على حفظ.
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 Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات، حسب ما إذا كان هناك جدول زمني لعمليات الاحتفاظ بنسخ احتياطية.
- سيتم فتح صفحة التعافي من الكوارث. توضّح هذه الصفحة جداول النسخ الاحتياطي وتدرِج النُسخ الاحتياطية المتاحة.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:schedules:list.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'
'(default)' لقاعدة البيانات التلقائية.
وصف الجدول الزمني للاحتفاظ بنسخة احتياطية
لاسترداد معلومات حول جدول زمني للنسخ الاحتياطي، استخدِم إحدى الطرق التالية:
Google Cloud Console
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات، حسب ما إذا كان هناك جدول زمني لعمليات الاحتفاظ بنسخ احتياطية.
- سيتم فتح صفحة التعافي من الكوارث. توضّح هذه الصفحة جداول النسخ الاحتياطي وتدرِج النُسخ الاحتياطية المتاحة.
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 Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات.
- انقر على تعديل لتعديل إعدادات استرداد البيانات بعد كارثة.
- عدِّل إعدادات جدول النسخ الاحتياطي، ثم انقر على حفظ.
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 Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات، حسب ما إذا كان هناك جدول زمني لعمليات الاحتفاظ بنسخ احتياطية.
- انقر على تعديل لتعديل إعدادات استرداد البيانات بعد كارثة.
- عدِّل إعدادات جدول النسخ الاحتياطي، ثم انقر على حفظ.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:schedules:delete:
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULE
- BACKUP_SCHEDULE: الاسم الكامل للمورد الخاص بجدول زمني لعمليات النسخ الاحتياطي يمكنك الاطّلاع على اسم كل جدول زمني للنسخ الاحتياطي عند إدراج جميع جداول النسخ الاحتياطي.
يُرجى العِلم أنّ حذف جدول زمني للنسخ الاحتياطية لن يؤدي إلى حذف النُسخ الاحتياطية التي تم إنشاؤها مسبقًا باستخدام هذا الجدول الزمني. يمكنك الانتظار إلى أن تنتهي صلاحيتها بعد فترة التخزين، أو يمكنك حذف نسخة احتياطية يدويًا من خلال الاطّلاع على حذف نسخة احتياطية.
إدارة النُسخ الاحتياطية
إدراج النُسخ الاحتياطية
لعرض قائمة بالنسخ الاحتياطية المتاحة، استخدِم إحدى الطرق التالية:
Google Cloud Console
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات، حسب ما إذا كان هناك جدول زمني لعمليات الاحتفاظ بنسخ احتياطية.
- انقر على تعديل لتعديل إعدادات استرداد البيانات بعد كارثة.
- عدِّل إعدادات جدول النسخ الاحتياطي، ثم انقر على حفظ.
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 Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات، حسب ما إذا كان هناك جدول زمني لعمليات الاحتفاظ بنسخ احتياطية.
- سيتم فتح صفحة التعافي من الكوارث. توضّح هذه الصفحة جداول النسخ الاحتياطي وتدرِج النُسخ الاحتياطية المتاحة.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:get:
firebase firestore:backups:get BACKUP
- BACKUP: الاسم الكامل لمورد النسخة الاحتياطية يمكنك الاطّلاع على اسم كل نسخة احتياطية عند إدراج جميع النُسخ الاحتياطية.
حذف النسخة الاحتياطية
لحذف نسخة احتياطية، استخدِم إحدى الطرق التالية.
Google Cloud Console
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات، حسب ما إذا كان هناك جدول زمني لعمليات الاحتفاظ بنسخ احتياطية. سيتم فتح صفحة التعافي من الكوارث. توضّح هذه الصفحة جداول النسخ الاحتياطي وتدرِج النُسخ الاحتياطية المتاحة.
- في جدول عمليات النسخ الاحتياطي، ابحث عن صف عملية النسخ الاحتياطي، ثم انقر على عرض المزيد() في عمود الإجراءات، ثم انقر على حذف.
- أكِّد الإجراء باستخدام حقل النص وانقر على حذف.
Firebase CLI
استخدِم الأمرfirebase firestore:backups:delete:
firebase firestore:backups:delete \ BACKUP
- BACKUP: الاسم الكامل لمورد النسخة الاحتياطية يمكنك الاطّلاع على اسم كل نسخة احتياطية عند إدراج جميع النُسخ الاحتياطية.
استعادة البيانات من نسخة احتياطية لقاعدة بيانات
تؤدي عملية الاستعادة إلى كتابة البيانات من نسخة احتياطية إلى قاعدة بيانات جديدة Cloud Firestore.
لبدء عملية استعادة، استخدِم إحدى الطرق التالية:
Google Cloud Console
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
- في قائمة قواعد البيانات، ابحث عن صف قاعدة البيانات. في عمود عمليات الاحتفاظ بنسخ احتياطية مُجدوَلة، انقر على عرض النسخ الاحتياطية أو تعديل الإعدادات، حسب ما إذا كان هناك جدول زمني لعمليات الاحتفاظ بنسخ احتياطية. سيتم فتح صفحة التعافي من الكوارث. توضّح هذه الصفحة جداول النسخ الاحتياطي وتدرِج النُسخ الاحتياطية المتاحة.
- في جدول عمليات النسخ الاحتياطي، ابحث عن صف عملية النسخ الاحتياطي، ثم انقر على عرض المزيد() في عمود الإجراءات. انقر على استعادة باستخدام 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 سابقًا، أعِد تطبيقها على قاعدة البيانات الجديدة. لا يتم تضمين سياسات مدة البقاء في النُسخ الاحتياطية، ولا تتم إعادة تطبيقها تلقائيًا على قواعد البيانات التي تم استعادتها.