فشل الاستعادة من النسخ الاحتياطي بسبب ترحيل S3

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

كانت هذه الإعدادات مفعلة أيضًا في وحدة تحكم Rails:

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)

كان سجل الخطأ ذي الصلة هو:

إعادة تعيين تعيين '//thinnal.s3.dualstack.us-east-1.amazonaws.com/' إلى '/uploads/default/'
incoming_emails=2
optimized_images=3851
post_revisions=86
posts=618
stylesheet_cache=10
topic_links=107
topics=150
uploads=419
user_histories=20
جاري نقل الملفات المرفقة إلى S3...
التحقق مما إذا كان 'default' قد نُقل بالفعل...
لم يتم نقل 1971 من أصل 1977 ملفًا مرفقًا إلى S3. فشل نقل S3 لقاعدة البيانات 'default'.
لم يتم إعادة تعيين تعيين 266 منشورًا إلى عنوان URL الجديد للمرفقات على S3. فشل نقل S3 لقاعدة البيانات 'default'.
البحث عن الملفات المرفقة المفقودة على: default

لا توجد ملفات مرفقة للمنشورات مفقودة.

لا توجد منشورات تتطلب إعادة خبز
جاري نقل الملفات المرفقة إلى S3 لـ 'default'...
لم يتم نقل بعض الملفات المرفقة إلى المخطط الجديد. يرجى تشغيل هذه الأوامر في وحدة تحكم Rails

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)
تم إلغاء عملية الاستعادة!
جاري محاولة التراجع...
جاري التراجع...
جاري تنظيف الأشياء...
حذف الدالة من مخطط discourse_functions
حذف الدليل المؤقت '/var/www/discourse/tmp/restores/default/2019-09-02-140750'...
جاري إعادة تفعيل sidekiq...
جاري وضع علامة على اكتمال الاستعادة...
إشعار 'system' بنهاية الاستعادة...
انتهى!
[فشل]
اكتملت الاستعادة.

هناك تقرير مشابه لما تبحث عنه. أعتقد أن الحل كان إيقاف تحميلات S3 عند الاستعادة؟

شكرًا لك @pfaffman. دعني أجرب ذلك.

هل تعرف طريقة عبر سطر الأوامر (rails console) لتعطيل تحميل S3؟

تم تعطيل التحميلات إلى S3 أثناء الاستعادة. ومع ذلك، ما زال الفشل قد حدث.

هذه مشكلة معروفة. كحل بديل، يمكنك تعطيل إعداد الموقع enable_s3_uploads مؤقتًا قبل إنشاء النسخة الاحتياطية. يمكنك إعادة تفعيله على الخادم الجديد بعد استعادة البيانات.

شكرًا لك! نعم، قمت بتعطيل الرفع إلى S3 قبل أخذ النسخة الاحتياطية، ثم نجحت عملية الاستعادة بنجاح.

مرحبًا،

ماذا نفعل إذا تم عمل نسخة احتياطية أثناء تفعيلها :slight_smile:

تم حل المشكلة؛

فتحت ملف dump.sql باستخدام برنامج EmEditor، ثم بحثت عن enable_s3_uploads و S3، واستبدلت جميع “t” بـ “f” وجميع “true” بـ “false”.

تم الاستعادة بنجاح :slight_smile:

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

هذا رائع! كنت سأقترح بالضبط تلك الخطوات. :wink:

لأي شخص يقرأ هذا في المستقبل: إذا كنت بحاجة إلى تحرير ملف dump.sql (والذي قد يكون كبيراً جداً)، فإنني أنصح باستخدام محرر Scintilla and SciTE. فهو يتعامل مع الملفات الكبيرة دون مشاكل.