لقد قمنا مؤخرًا بالترقية إلى Discourse من vBulletin.
ما زلنا نتعلم كيفية استخدام Discourse وأدواته.
إحدى مخاوفي هي التعافي من الكوارث.
لدينا لقطات تلقائية نحتفظ بها لفترة طويلة.
نقوم بنسخ احتياطي يومي باستخدام الأدوات داخل Discourse ونحفظها في سلة S3 لمدة 15 يومًا.
التعافي من لقطة أمر مباشر جدًا.
الفكرة هي التعافي من آخر لقطة متاحة تعمل، ثم استخدام آخر نسخة احتياطية متاحة لاستعادة المحتوى.
كنت بحاجة إلى جهاز اختبار لتجربة بعض إضافات Discourse.
لذا كانت هذه فرصة جيدة لتجربة خطة التعافي من الكوارث.
لكن بدلاً من استخدام لقطة، حاولت الاستعادة من الصفر (فقط في حال ساءت الأمور واضطررنا إلى البدء من الصفر لاستعادة نسخة احتياطية متاحة).
لقد أنشأت جهاز Debian، وقمت بتحديث البرامج، وقمت بتثبيت Discourse من الصفر (بدون أي إضافات مثبتة، فقط الحد الأدنى الأساسي).
قمنا بتكوين HTTPS لجعله يعمل، وبعد ذلك حاولت استعادة آخر نسخة احتياطية.
فشل أثناء تحديث قاعدة البيانات.
اشتكى من وجود بعض الأعمدة غير موجودة في بعض الجداول. تم التراجع، وكان لدي مرة أخرى نفس المحتوى: تقريبًا لا شيء.
عند قراءة الأخطاء وبعض الموضوعات هنا، أدركت أن السبب قد يكون اختلاف إصدارات Discourse.
تحققت من ذلك. نعم، كان المنتدى الجديد يحتوي على إصدار أحدث قليلاً من الإصدار الأصلي.
قمنا بترقية المنتدى الأصلي إلى أحدث إصدار وقمنا بعمل نسخة احتياطية.
حاولت استعادته وفشل مرة أخرى بأخطاء مماثلة.
لذا قد يكون السبب أن المنتدى الجديد لم يكن يحتوي على نفس الإضافات المثبتة.
لذلك قمت بتعديل ملف app.yml لتثبيت الإضافات، وإعادة بناء التطبيق، وحاولت مرة أخرى.
هذه المرة نجح الأمر بشكل جيد.
لكن ذلك جعلني قلقًا.
إذا كان عليك استعادة النسخة الاحتياطية على جهاز يحتوي بالضبط على نفس الإضافات والإصدارات المثبتة، فسيكون من الصعب جدًا تحقيق استعادة ناجحة.
هذه المرة كان المنتدى القديم يعمل وكان من السهل التحقق من الإصدارات وتحديثه إلى الأحدث.
لكن عند التعافي من كارثة، لا تتاح لك فرصة للتحقق من الإصدارات أو ترقية البرامج.
كيف تحل هذه المشكلة؟
هل تحتوي النسخة الاحتياطية على معلومات حول الإضافات المثبتة وإصدارات Discourse والإضافات؟
كيف تنشئ مثيلًا أساسيًا لـ Discourse مع إصدارات Discourse والإضافات المناسبة لتطابق تلك الموجودة في نسختك الاحتياطية؟
شكرًا مقدّمًا على إرشاداتكم.