يمكن لمستخدمي خطة 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.
الجدولة
يتم تخصيص ساعة معيّنة كل يوم لعملية الاحتفاظ بنسخة احتياطية من قاعدة البيانات، ما يضمن توزيع الحمل بالتساوي وتوفير أعلى مستوى من إمكانية الوصول لجميع العملاء الذين يستخدمون ميزة الاحتفاظ بنسخة احتياطية. سيتم إجراء عملية النسخ الاحتياطي المجدوَلة هذه بغض النظر عما إذا أجريت أي عمليات نسخ احتياطي يدوي على مدار اليوم.
تسمية الملفات
ستتم إضافة طابع زمني (معيار ISO 8601) إلى الملفات التي يتم نقلها إلى حزمة Cloud Storage، وسيتم استخدام اصطلاحات التسمية التالية:
- بيانات قاعدة البيانات:
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 يومًا لتقليل تكاليف التخزين.