كيفية منع النسخ الاحتياطية لـ Home Assistant من التقاط حالة غير متسقة لقاعدة البيانات

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

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

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

لا تتعامل مع قاعدة بيانات SQLite المباشرة كأنها ملف ثابت عادي

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

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

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

تجنّب تشغيل مهام النسخ الاحتياطي أو الصيانة المتنافسة خلال الفترة نفسها

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

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

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

بالنسبة إلى نسخ نظام الملفات الخام، أوقف Home Assistant مؤقتًا واحفظ مجموعة الحالة كاملة

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

تضع مقارنة ZimaSpace الحالية بين النسخ الاحتياطي لـ Home Assistant أثناء التشغيل وبعد الإيقاف الحد نفسه: فالنسخ الاحتياطي المباشر الواعي بالتطبيق ونسخ نظام الملفات الخام إجراءان مختلفان، ولا ينبغي دمجهما في قاعدة واحدة.

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

-15% OFF

لا تثق بالنسخة الاحتياطية إلا بعد نجاح استعادة معزولة

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

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

تُعدّ السياسة ناجحة عندما تكون هناك آلية نسخ احتياطي واحدة فقط مسؤولة عن الاتساق في كل مرة، وتكتمل مرحلة تجهيز قاعدة البيانات، ويجري الاحتفاظ بالنسخة السابقة المعروفة بجودتها، وتعيد عملية الاستعادة إنتاج المستخدمين والسجل والإعدادات وسلوك إعادة التشغيل الطبيعي. إذا فشل اختبار الاستعادة، فاحتفظ بالأدلة وأنشئ نسخة احتياطية جديدة مدعومة أو نسخة متحكمًا بها بعد الإيقاف قبل حذف نقاط الاسترداد الأقدم.

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

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

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.