كيفية إصلاح Home Assistant بعد امتلاء وحدة تخزين قاعدة بياناته

إيفا وونغ هي كاتبة تقنية و ومهندسة هاوية في ZimaSpace. مهووسة بالتكنولوجيا مدى الحياة ولديها شغف بالمختبرات المنزلية والبرمجيات مفتوحة المصدر، تتخصص في تبسيط المفاهيم التقنية المعقدة إلى أدلة عملية وسهلة الفهم. تؤمن إيفا بأن الاستضافة الذاتية يجب أن تكون ممتعة وليست مخيفة. من خلال دروسها، تمكّن المجتمع من تبسيط إعدادات الأجهزة، بدءًا من بناء أول نظام تخزين شبكي NAS وحتى إتقان حاويات Docker.

عندما يمتلئ قسم قاعدة بيانات Home Assistant، أوقف عمليات الكتابة الجديدة أولًا. أنشئ مساحة عمل من دون حذف قاعدة البيانات النشطة، واحتفظ بنسخة منها، وحدد ما إذا كان Recorder قادرًا على فتح قاعدة البيانات والحفاظ عليها قبل اختيار التنظيف أو الإصلاح أو الاستعادة.

قد يمنع القسم الممتلئ عملية التنظيف نفسها التي يُفترض أن تصلحه، ولا سيما عندما يحتاج ضغط قاعدة البيانات أو إعادة بنائها إلى مساحة مؤقتة. حافظ على ترتيب حذر: أوقف Home Assistant، وتحقق من نظام الملفات الممتلئ، وانقل الملفات غير المرتبطة أو وسّع القسم، وانسخ قاعدة البيانات، وافحص السجلات وسلامة القاعدة، ثم طبّق أقل إجراءات الاسترداد إتلافًا بما يتوافق مع النتيجة.

إيقاف الكتابة والتأكد من نظام الملفات الممتلئ فعليًا

أوقف Home Assistant أو Recorder بمجرد تكرار أخطاء الكتابة إلى قاعدة البيانات. حدد نظام الملفات أو نقطة التحميل أو وحدة التخزين الرقيقة التي تحتوي على قاعدة البيانات النشطة، وقارن بين المساحة الإجمالية والمتاحة، وعدد عقد الملفات، وحجم قاعدة البيانات، والسجلات، والنسخ الاحتياطية، وطبقات الكتابة القابلة للتعديل للحاويات. يحتاج قرص النظام الممتلئ وقسم قاعدة البيانات الخارجي الممتلئ إلى إصلاحات مختلفة.

لا تفترض أن قاعدة البيانات هي المستهلك الوحيد للمساحة. قد توفر النسخ الاحتياطية القديمة، وسجلات تصحيح الأخطاء، وملفات التصدير، واللقطات، وطبقات الحاويات غير المرتبطة مساحة طوارئ أكثر أمانًا. انقل أو احذف فقط الملفات التي تعرف الغرض منها وحالة نسخها الاحتياطي؛ ولا تحذف قاعدة البيانات النشطة أو ملفات WAL أو السجل أو ملفات محرك قاعدة البيانات بشكل فردي.

يُعد دليل ZimaSpace حول العثور على استخدام Docker للقرص خارج البيانات المعيّنة الفحص الموازي المناسب عندما يبدو مسار قاعدة البيانات المُعد صغيرًا، لكن يظل قرص نظام المضيف ممتلئًا.

إنشاء مساحة عمل والحفاظ على قاعدة البيانات

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

لا تُعد إعادة الضغط خطوة طوارئ أولى على نظام ملفات ممتلئ، لأنها قد تتطلب مساحة مؤقتة كبيرة. تشير ملاحظات استكشاف الأخطاء وإصلاحها في المجتمع إلى أن إعادة ضغط SQLite قد تحتاج إلى مساحة حرة تقارب حجم قاعدة البيانات؛ والخلاصة العملية هي إنشاء مساحة عمل قبل إعادة الضغط بدلًا من الوثوق بقسم شبه ممتلئ.

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

اختيار التنظيف أو إصلاح السلامة أو الاستعادة من نسخة سليمة معروفة

شغّل Home Assistant لمدة تكفي فقط لفحص سجلات Recorder وحالة قاعدة البيانات. إذا فُتحت قاعدة البيانات دون أخطاء، فقلّل مدة الاحتفاظ أو استبعد الكيانات كثيرة الضجيج وشغّل التنظيف من دون إعادة ضغط أولًا. يقلل ذلك حجم البيانات المنطقي مع تجنب خطوة المساحة المؤقتة الأكبر.

إذا ظهرت أخطاء في السلامة، فأوقف الكتابة مجددًا واعمل على نسخة. استخدم أدوات السلامة والاسترداد المدعومة من محرك قاعدة البيانات، أو استعد نسخة احتياطية سليمة معروفة. لا تشغّل Home Assistant مرارًا باستخدام قاعدة بيانات تالفة، لأن عمليات الكتابة الجديدة قد تعقّد الاسترداد وتحجب سبب الفشل الأصلي.

إذا لم تتوفر نسخة صالحة من قاعدة البيانات أو نسخة احتياطية، فإن إنشاء قاعدة بيانات Recorder جديدة يعيد التشغيل لكنه يفقد السجل التاريخي. اعتبر ذلك فرع الاسترداد الأخير، واحتفظ بقاعدة البيانات الفاشلة لتحليلها لاحقًا، وافصل بين الإعدادات والسجلات وقرار الاحتفاظ بالتاريخ.

تقليل مصدر النمو قبل إعادة الخدمة

حدد سبب امتلاء القسم: كثرة تحديثات الكيانات، أو مدة احتفاظ طويلة، أو سجلات كبيرة، أو تراكم النسخ الاحتياطية، أو فشل التنظيف، أو تضخم قاعدة البيانات، أو صغر القسم عن الحجم المقصود. أصلح المصدر الذي تم قياسه بدلًا من تطبيق جميع خيارات التنظيف دفعة واحدة.

حدد مدة احتفاظ منطقية، واستبعد الكيانات التي لا تقدم فائدتها التاريخية عالية التواتر قيمة تُذكر، وأعد مستوى التسجيل من التصحيح إلى الوضع العادي، وانقل نسخ النسخ الاحتياطية خارج المضيف، وأنشئ تنبيهات لكل من المساحة الحرة ومعدل النمو. اترك مساحة تشغيلية للترقيات والنسخ الاحتياطية وتغييرات المخطط والصيانة.

قارن قاعدة البيانات المستردة بمعايير ZimaSpace الخاصة بـ صيانة قاعدة البيانات مقابل استبدالها عندما يجعل الفساد المتكرر أو حالات فشل السلامة مواصلة الإصلاح أقل موثوقية من الاستعادة من نسخة سليمة معروفة.

التحقق من الاسترداد تحت حمل Recorder

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

أعد تشغيل Home Assistant مرتين وشغّل عملية التنظيف أو النسخ الاحتياطي المجدولة التالية. لا يُعد الاسترداد ناجحًا إلا إذا أُعيد فتح قاعدة البيانات، وتقدم السجل التاريخي، وظلت المساحة الحرة أعلى من حد الإيقاف، ولم تعد أخطاء السلامة أو القراءة فقط.

ارجع إلى النسخة المحفوظة أو النسخة الاحتياطية السليمة المعروفة إذا أدت الصيانة إلى فساد جديد، أو اختفى التاريخ على نحو غير متوقع، أو بدأ القسم بالامتلاء بالمعدل نفسه. صعّد أعطال التخزين وأخطاء محرك قاعدة البيانات وأعطال Recorder القابلة لإعادة الإنتاج، مع إرفاق السجلات والخط الزمني المحفوظ.

الدعم والنصائح

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.