يمكن لمستخدمي خطة Blaze إعداد Firebase Realtime Database لإجراء عمليات نسخ احتياطي تلقائية، وهي ميزة خدمة ذاتية تتيح إجراء عمليات نسخ احتياطي يومية لبيانات تطبيق قاعدة البيانات وSecurity Rules بتنسيق JSON إلى حزمة Cloud Storage.
الإعداد
في وحدة تحكّم Firebase، انتقِل إلى قواعد البيانات ومساحة التخزين > قاعدة بيانات الوقت الفعلي.
في علامة التبويب النُسخ الاحتياطية، استخدِم سير العمل في وحدة التحكّم لإعداد النُسخ الاحتياطية التلقائية.
لتوفير تكاليف التخزين، نفعّل ضغط Gzip تلقائيًا، ويمكنك اختيار تفعيل سياسة دورة حياة لمدة 30 يومًا في حزمتك لحذف النُسخ الاحتياطية التي مرّ عليها أكثر من 30 يومًا تلقائيًا.
يمكنك الاطّلاع على الحالة ونشاط الاحتفاظ بنسخة احتياطية مباشرةً في وحدة تحكّم "Firebase" حيث يمكنك أيضًا بدء عملية الاحتفاظ بنسخة احتياطية يدويًا. يمكن أن يكون هذا مفيدًا لالتقاط لقطات محددة في وقت معين أو كإجراء أمان قبل إجراء أي تغييرات على الرمز.
بعد الإعداد، سيتم إنشاء حزمة جديدة على Cloud Storage لك باستخدام إذن WRITER لمنصّة Firebase. يجب عدم تخزين البيانات في هذه الحزمة إذا كنت لا تريد أن يصل Firebase إليها. لن يكون لدى Firebase أي إذن وصول إضافي إلى مستودعات Cloud Storage الأخرى أو أي مناطق أخرى في Google Cloud.
استعادة البيانات من النُسخ الاحتياطية
لاستعادة Firebase من نسخة احتياطية، عليك أولاً تنزيل الملف من Cloud Storage إلى القرص المحلي. ويمكن إجراء ذلك من خلال النقر على اسم الملف ضمن قسم نشاط النسخ الاحتياطي أو من واجهة حزمة Cloud Storage. إذا كان الملف مضغوطًا ببرنامج Gzip، عليك أولاً إلغاء ضغط الملف.
يتوفّر خياران لاستيراد بياناتك:
الخيار 1: استخدام وحدة تحكّم Firebase
انتقِل إلى قواعد البيانات ومساحة التخزين > قاعدة بيانات الوقت الفعلي > علامة التبويب البيانات.
انقر على استيراد JSON، واختَر ملف JSON لبيانات التطبيق.
الخيار 2: إصدار طلب CURL من سطر الأوامر
استرِدّ مفتاحًا سريًا من Firebase، والذي يمكنك الحصول عليه من قواعد البيانات ومساحة التخزين > قاعدة البيانات في الوقت الفعلي > علامة التبويب الإعدادات.
أدخِل ما يلي في الوحدة الطرفية، مع استبدال الحقلَين
DATABASE_NAMEوSECRETبقيمك الخاصة:curl 'https://<DATABASE_NAME>.firebaseio.com/.json?auth=<SECRET>&print=silent' -X PUT -d @<DATABASE_NAME>.json
إذا كنت تواجه مشكلة في استعادة نسخة احتياطية من قاعدة بيانات كبيرة جدًا، يُرجى التواصل مع فريق دعم Firebase.
الجدولة
يتم تخصيص ساعة محددة كل يوم لإجراء النسخ الاحتياطي لقاعدة البيانات، وذلك لضمان توزيع الحمل بشكل متساوٍ وتوفير أعلى مستوى من التوافر لجميع عملاء النسخ الاحتياطي. سيتم إجراء هذه النسخة الاحتياطية المجدولة بغض النظر عما إذا كنت تقوم بأي نسخ احتياطية يدوية على مدار اليوم.
تسمية الملفات
ستتم إضافة طابع زمني إلى الملفات المنقولة إلى حزمة Cloud Storage (معيار ISO 8601) واستخدام قواعد التسمية التالية:
- بيانات قاعدة البيانات:
YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_data.json - قواعد قاعدة البيانات:
YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_rules.json
في حال تفعيل Gzip، ستتم إضافة اللاحقة .gz إلى أسماء الملفات. يمكنك
العثور بسهولة على النُسخ الاحتياطية من تاريخ أو وقت محدّد باستخدام Cloud Storage
البحث بالبادئة.
ضغط Gzip
نضغط تلقائيًا ملفات النسخ الاحتياطية باستخدام ضغط Gzip لتوفير تكاليف التخزين وتقليل أوقات النقل. يختلف حجم الملف المضغوط حسب خصائص بيانات قاعدة البيانات، ولكن قواعد البيانات النموذجية قد تتقلص إلى ثلث حجمها الأصلي، مما يوفر لك تكاليف التخزين ويقلل وقت تحميل النسخ الاحتياطية.
لإلغاء ضغط ملفات JSON المضغوطة بتنسيق Gzip، يمكنك إصدار أمر سطر أوامر باستخدام
gunzip الثنائي الذي يتم شحنه تلقائيًا لنظام التشغيل OS-X ومعظم توزيعات
Linux.
gunzip <DATABASE_NAME>.json.gz # Will unzip to <DATABASE_NAME>.json
دورة حياة مساحة التخزين لمدة 30 يومًا
نوفّر مفتاح ضبط سهل الاستخدام يتيح تفعيل سياسة تلقائية لدورة حياة العناصر مدتها 30 يومًا في حزمة Cloud Storage. عند تفعيل هذه الميزة، سيتم حذف الملفات في مستودعك تلقائيًا بعد 30 يومًا. يساعد ذلك في تقليل النُسخ الاحتياطية القديمة غير المرغوب فيها، ما يوفّر لك تكاليف التخزين ويحافظ على نظافة دليل الحزمة. إذا وضعت ملفات أخرى في حزمة "النُسخ الاحتياطية الآلية"، سيتم حذفها أيضًا وفقًا للسياسة نفسها.
التكاليف
يمكن تفعيل ميزة النُسخ الاحتياطية للمشاريع في خطة Blaze بدون أي تكلفة إضافية. ومع ذلك، سيتم تحصيل رسوم منك وفقًا للأسعار العادية مقابل ملفات النُسخ الاحتياطية التي يتم وضعها في حزمة Cloud Storage. يمكنك تفعيل ضغط Gzip ودورة حياة التخزين لمدة 30 يومًا لتقليل تكاليف التخزين.