أحاول استعادة نسخة احتياطية على مثيل Discourse تم تثبيته حديثًا، وأواجه هذه الرسالة عند استخدام سطر الأوامر:
ERROR: could not extend file "base/16384/17011337": wrote only 4096 of 8192 bytes at block 15860
HINT: Check free disk space.
EXCEPTION: psql failed: HINT: Check free disk space.
حجم ملف النسخ الاحتياطي الذي أحاول استعادته هو 22 جيجابايت (مضغوط بصيغة gz)، ولدي 198 جيجابايت متاحة على الخادم، لذا أشعر بأنه لا يمكن أن تكون المشكلة متعلقة فعليًا بمساحة القرص. هل لديك أي فكرة عن سبب ظهور هذه الرسالة؟
يمكنك أيضًا التحقق من أقسام القرص لديك. من الممكن أن يكون لديك 198 جيجابايت متاحة على الخادم، لكن الخادم يحتوي على أكثر من قسم قرص واحد، كما أنت على يقين. ربما يمكنك الرد مع إخراج أمر df؟
أعتقد أن حجم قاعدة البيانات كان حوالي 40 جيجابايت غير مضغوطة. قمت بنسخ احتياطي للنقطة بعد الاستيراد من برنامج منتدى آخر، لذا افترضت أن عملية الاستعادة لن تشكل مشكلة. لم أكن أعاني من نقص في مساحة القرص من قبل. يمكنني إضافة مساحة قرص إضافية، لكنني اعتقدت ببساطة أنه لا يوجد أي احتمال لاحتياجها لأكثر من ثلاثة أضعاف حجم قاعدة البيانات.
كل شيء مقسم على / لذا لا أعتقد أن هناك أي مشاكل هناك:
أعلم أن لدينا كمية كبيرة من المحتوى. لكن يبدو أن متطلبات المساحة تضخمت ببساطة عن طريق إجراء نسخة احتياطية واستعادتها. كان لدينا أكثر من 100 جيجابايت من المساحة الحرة قبل النسخ الاحتياطي، لذا افترضت أن إجراء الاستعادة لن يكون مشكلة، لكن عملية الاستعادة احتاجت إلى مساحة أكبر بكثير مما توقعت. يبدو أنها كانت قصيرة قليلاً فقط.
أحاول تشغيل الاستعلام لعرض أكبر 20 كائناً في قاعدة البيانات، لكنه يعمل منذ حوالي ساعة الآن ولا أعرف كم من الوقت سيستغرق حتى يكتمل.
تحقق مما إذا كانت نسخ احتياطية للمخططات والاستعادة لا تزال موجودة. عندما تفشل عملية الاستعادة/النسخ الاحتياطي بشكل كارثي (مثل نفاد المساحة)، قد تبقى هذه الملفات معلقة. لدينا مهمة خلفية تقوم بتنظيفها أسبوعيًا، ولكن قد ترغب في تشغيلها في وقت أقرب.
قم بزيارة /sidekiq/scheduler وابحث عن Jobs::DropBackupSchema ثم انقر فوق “تشغيل”.
إذا كان لديك نسخة احتياطية كاملة، فستكون لديك 3 نسخ: النسخة الاحتياطية الكاملة، وتصدير قاعدة البيانات الموجود بداخلها، وقاعدة البيانات المستعادة، بالإضافة إلى أي قاعدة بيانات موجودة مسبقًا.