استعادة فشلت: "لم يمكن نقل بعض الملفات المرفقة إلى المخطط الجديد"

لقد حاولت إجراء عمليات استعادة من خادم إلى آخر لعدة أيام. تم تشغيل الخادم الأصلي في عام 2016، لذا يعاني من بعض المشكلات القديمة. بدأت في معالجة هذه المشكلة عندما انتهت صلاحية شهادة قديمة، ثم انخرطت في سلسلة من المشكلات أثناء دورة النسخ الاحتياطي/الاستعادة.

كل من الخادم الأصلي والخادم الجديد مقيدان بالإصدار v2.5، على الفرع المستقر. كما قمت بإزالة بعض الإضافات التي كانت مضمنة، حيث أشارت بعض المنشورات إلى وجود مشاكل مع الإضافات، ولمجرد عزل أي مشاكل محتملة.

كنت أعاني سابقًا من مشاكل في قاعدة البيانات، فاتبعت العديد من التعليمات في هذا المنشور وتمكنت من تنظيف المشكلات المسببة للمشكلة.

ومع ذلك، أعاني الآن من مشكلة مع S3 أثناء النسخ الاحتياطي. إليك الاستثناء الذي يتسبب في فشل الاستعادة:

[2020-07-07 17:01:29] جاري استعادة الملفات المرفقة، قد يستغرق هذا بعض الوقت...
[2020-07-07 17:01:29] EXCEPTION: لم يتم نقل بعض الملفات المرفقة إلى المخطط الجديد. يجب عليك إصلاح ذلك يدويًا.
[2020-07-07 17:01:29] /var/www/discourse/lib/file_store/to_s3_migration.rb:155:in `migrate_to_s3'

ثم تدخل في دورة تراجع وأحصل في النهاية على رسالة تفيد بأن الاستعادة فشلت.

لقد راجعت المنشورات التالية:

لم أجد الكثير من النجاح حتى الآن.

معظم صوري موجودة بالفعل على S3. أعتقد أن المشكلة ناتجة عن القليل من الصور المتبقية الموجودة على القرص. يمكنني التصفح ورؤية بضع مجلدات (مثل 01، 02، 03، إلخ)، مع وجود صورة غريبة هنا أو هناك. رأيت هذه الملاحظة حول إصلاحها في الإصدار 2.6.1، لذا حتى جربت تحديث الخادم الجديد إلى ذلك لاستخدام الإصلاح، لكن دون جدوى.

لذلك لدي سؤالان محددان:

  1. ما الذي أحتاجه تحديدًا للقيام به بشأن رسالة الخطأ “يجب عليك إصلاح ذلك يدويًا.” هل هناك عملية لا أعرفها؟
  2. هل من الممكن أنني ألاحق المشكلة الخاطئة هنا؟ أي، هل من المعقول أن إشعار EXCEPTION هو في الواقع ما يتسبب في فشل الاستعادة؟

حسناً، لا يزال الأمر محيراً لي. تمكنت من إعادة تشغيل خادمي القديم عن طريق تجربته خلف خادم nginx والحصول على الشهادة بهذه الطريقة (حيث يوجد موقع آخر يعمل على نفس النطاق).

ومع ذلك، لا أزال أرغب في الهجرة. كما أنني أخشى ألا أتمكن من استعادة الخادم في حال حدوث أي خطأ.

إذا كانت هناك أي بيانات إضافية يمكنني تقديمها، فلا تتردد في إخباري!

هل جربت إيقاف تحميلات S3 قبل إنشاء النسخة الاحتياطية؟
فقط إيقاف S3 دون إعادة النسخ لا ينبغي أن يسبب أي ضرر. ثم قم باستعادة البيانات وأعد تفعيل S3.

نعم، هذا نجح! مذهل! كان هذا حلاً أبسط بكثير مما كنت أتوقع.