هذا المنشور هو نسخة مكثفة جدًا من آخر 24 ساعة لدي، على الرغم من أنه لم ينجح بعد، لذا آمل أيضًا أن ينشر شخص ما أين أخطأت أدناه.
فشل تحديث Discourse الخاص بي بسبب مفتاح مكرر، حيث تم تكرار إحدى علاماتي. لإصلاح مشكلة التحديث، احتجت إلى إجراء تثبيت جديد لـ Discourse ثم تحميل أحدث نسخة احتياطية لدي، لكن إعادة التحميل تفشل لأنها ترفض المفتاح المكرر. لذلك احتجت إلى الدخول إلى النسخة الاحتياطية لتعديل العلامة المخالفة إلى شيء آخر.
لسبب ما، فإن النسخة الاحتياطية المعاد ضغطها مع مشكلة العلامة المكررة التي تم إصلاحها أصغر بكثير من النسخة الاحتياطية التي جاءت منها، وتفشل عندما أحاول استعادتها، لذلك حدث خطأ ما في عملية إعادة الضغط.
1) تحديد موقع النسخ الاحتياطية: لتحديد موقع النسخ الاحتياطية لـ Discourse، يمكنك استخدام الأمر التالي:
sudo find / -name "*.tar.gz"
سيؤدي هذا إلى البحث في نظامك عن جميع ملفات النسخ الاحتياطي بالامتداد “.tar.gz”. افتراضيًا، يجب أن يكون داخل حاويتك في: shared/backups/default
2) إنشاء نسخة: بمجرد العثور على النسخة الاحتياطية التي تريد العمل معها، قم بإنشاء نسخة منها لضمان أن لديك نسخة احتياطية من الملف الأصلي. استخدم الأمر “cp”:
bash
sudo cp /path/to/original_backup.tar.gz /path/to/copy_backup.tar.gz
3) استخراج النسخة: استخرج محتويات ملف النسخة الاحتياطية المنسوخ باستخدام الأمر “tar”:
bash
tar -xzvf /path/to/copy_backup.tar.gz
سيؤدي هذا إلى استخراج ملفات النسخ الاحتياطي إلى دليل مؤقت.
4) تعديل العلامات في قاعدة البيانات: انتقل إلى ملفات النسخ الاحتياطي المستخرجة وافتح ملف قاعدة البيانات ذي الصلة باستخدام محرر نصوص. واجهت مشكلة مع علامات “socialmedia” المكررة، والتي منعت الاستعادة الناجحة. في قاعدة بيانات كبيرة، هناك العديد من الحالات للعلامات، ومن المحتمل أن تكون العلامة المحددة التي تبحث عنها، لذا بحثت عن ‘immutable socialmedia’ باستخدام Ctrl W في Nano، مما أدى بي إلى هناك مباشرة.
sudo nano /path/to/extracted_database.sql
قمت بتعديل إحدى حالات علامة “socialmedia” إلى “socialmedia2”، ثم أجريت بحثًا سريعًا للتحقق من أنها تظهر مرة واحدة فقط الآن. يمكنني إصلاح تلك العلامات من قسم المسؤول بمجرد نجاح الاستعادة.
5) إعادة الضغط: بعد تعديل ملفات النسخ الاحتياطي، قم بإنشاء ملف نسخ احتياطي جديد بالمحتوى المصحح. استخدم الأمر التالي لضغط الملفات المعدلة:
tar -czvf /path/to/new_modified_backup.tar.gz /path/to/modified_files_directory
6) نقل إلى الملف الصحيح: انقل ملف النسخ الاحتياطي الجديد المعدل إلى الدليل المناسب حيث يتم تخزين النسخ الاحتياطية. الموقع الافتراضي هو عادةً “/shared/backups/default”:
sudo mv /path/to/new_modified_backup.tar.gz /shared/backups/default/
7) إيقاف وبدء الخدمات: قبل استعادة النسخة الاحتياطية المعدلة، تأكد من إيقاف الخدمات ذات الصلة لتجنب التعارضات المحتملة أثناء عملية الاستعادة. استخدم الأمر “./launcher stop app” لإيقاف تطبيق Discourse:
./launcher stop app
8) استعادة النسخة الاحتياطية: للاستعادة من النسخة الاحتياطية المعدلة، استخدم الأمر “discourse restore” مع المسار إلى ملف النسخ الاحتياطي الجديد:
discourse restore /shared/backups/default/new_modified_backup.tar.gz
أو يمكنك القيام بذلك عبر /admin على موقعك حيث يجب أن تظهر الآن في قسم النسخ الاحتياطية.
9) التحقق من الاستعادة: بعد اكتمال عملية الاستعادة، تحققت من نجاح التغييرات عن طريق فحص تطبيق Discourse وقاعدة البيانات للتأكد من إزالة علامات “socialmedia” المكررة.
10) بدء الخدمات: قمت بإعادة تشغيل الخدمات التي تم إيقافها سابقًا لإعادة تشغيل تطبيق Discourse. استخدمت الأمر “./launcher start app” لبدء تشغيل تطبيق Discourse:
./launcher start app
11) حذف الملفات المؤقتة والنسخ الاحتياطية الإضافية: بعد استعادة النسخة الاحتياطية بنجاح، قمت بحذف أي ملفات مؤقتة ونسخ احتياطية إضافية تم إنشاؤها أثناء العملية لتحرير مساحة القرص. استخدم الأمر “rm” لإزالة الملفات:
sudo rm -r /path/to/temporary_directory
sudo rm /path/to/copy_backup.tar.gz
