يمكن لمستخدمي خطة Blaze إعداد Firebase Realtime Database لإجراء ملفّات احتياطية تلقائية، وهي ميزة الخدمة الذاتية التي تتيح إنشاء ملفّات احتياطية يومية ل databse application data و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: انقر على الزر "استيراد ملف 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
إذا كنت تواجه مشكلة في استعادة نسخة احتياطية من قاعدة بيانات كبيرة جدًا، يُرجى التواصل مع فريق الدعم.
الجدولة
يتم تعيين النسخة الاحتياطية من قاعدة البيانات إلى ساعة محددة كل يوم والتي تضمن التحميل المتساوي وأعلى توافر لجميع عملاء النسخ الاحتياطي. ستتم عملية الاحتفاظ بنسخة احتياطية مجدوَلة بغض النظر عمّا إذا كنت تُجري أي عمليات احتياطية يدوية على مدار اليوم.
تسمية الملفات
سيتم إضافة طابع زمني (وفقًا لمعيار 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 لتوفير تكاليف التخزين وتقليل أوقات النقل. يختلف حجم الملف المضغوط بناءً على خصائص البيانات في قاعدة البيانات، ولكن قد تتقلص قواعد البيانات النموذجية إلى 1⁄3 حجمها الأصلي، مما يوفر لك تكاليف التخزين ويقلل من وقت تحميل النسخ الاحتياطية.
لفك ضغط ملفات 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 يومًا لتقليل تكاليف التخزين.