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