تكون نسخة احتياطية سليمة ومعروفة لقاعدة بيانات Home Assistant أكثر فائدة عندما تحدد أولًا ما تريد استعادته فعليًا. إذا كان ينبغي إعادة تثبيت Home Assistant بالكامل إلى نقطة النسخة الاحتياطية، فاستخدم مسار الاستعادة المدعوم في Home Assistant. أما إذا كان الإعداد سليمًا وكانت الحاجة تقتصر على استعادة سجل Recorder، فقد تتجنب استعادة قاعدة البيانات وحدها الكتابة فوق الأتمتة والتكاملات الأحدث.
لا تستبدل قاعدة البيانات الحالية أثناء قيام Home Assistant بالكتابة إليها. احتفظ أولًا بنسخة من قاعدة البيانات الحالية، وأوقف Home Assistant أو أوقف عمليات Recorder مؤقتًا بطريقة أخرى، ثم استعد النسخة السليمة المعروفة في مسار معزول أو خاضع للتحكم، وبعد ذلك شغّل النظام وتحقق منه قبل حذف أي من النسختين.
اختر استعادة Home Assistant بالكامل أو استعادة قاعدة البيانات فقط
تستبدل استعادة نسخة Home Assistant الاحتياطية الكاملة حالة التطبيق الحالية بمحتويات النسخة الاحتياطية. ويكون ذلك مناسبًا عندما ينبغي إعادة الإعداد والتكاملات والتطبيقات وقاعدة البيانات كلها إلى النقطة المعروفة نفسها.
تحذر إجراءات استعادة النسخة الاحتياطية الكاملة الحالية صراحةً من أن التغييرات الحالية ستُستبدل بحالة النسخة الاحتياطية. وإذا كانت المشكلة الوحيدة في سجل Recorder، فقد يكون هذا النطاق أوسع من اللازم.
لاستعادة قاعدة البيانات فقط، حدّد نسخة قاعدة بيانات Recorder السليمة المعروفة بدقة، واترك شجرة الإعداد الحالية دون تغيير. دوّن وقت إنشاء النسخة الاحتياطية حتى تعرف مقدار السجل الذي سيُفقد عند الرجوع إليها.
تأكد من قاعدة البيانات التي يستخدمها Home Assistant فعليًا
يستخدم Home Assistant قاعدة بيانات SQLite افتراضيًا، وتُخزَّن في /config/home-assistant_v2.db، لكن يمكن لـ Recorder استخدام MariaDB أو MySQL أو PostgreSQL بدلًا منها عبر db_url. لا تنسخ ملف SQLite إلى نشر يكتب فعليًا في قاعدة بيانات خارجية.
تُعد SQLite قاعدة بيانات Recorder الافتراضية في Home Assistant، وتُخزَّن عادةً في /config/home-assistant_v2.db؛ كما يمكن ضبط Recorder لاستخدام قاعدة بيانات خارجية مدعومة عبر db_url. تحقّق من إعداد Recorder الفعلي قبل التعامل مع الملفات، حتى تتوافق مادة الاستعادة مع قاعدة البيانات التي يستخدمها Home Assistant فعلًا.
إذا كانت قاعدة البيانات خارجية، فاستعدها باستخدام طريقة النسخ الاحتياطي الخاصة بمحرك قاعدة البيانات، ونسّق بين إصدار التطبيق والمخطط. لا تتعامل مع تفريغ SQL وملف SQLite على أنهما مادتان قابلتان للتبادل للاستعادة.
أوقف عمليات الكتابة قبل استبدال ملف قاعدة بيانات SQLite
إذا كانت نسختك الاحتياطية السليمة المعروفة نسخة فعلية نظيفة من home-assistant_v2.db، فأوقف Home Assistant قبل استبدال الملف المباشر. احتفظ بقاعدة البيانات الحالية تحت اسم مختلف بدلًا من حذفها.
توضح إرشادات SQLite الخاصة بالنسخ الاحتياطي أن نسخة قاعدة البيانات يجب أن تمثل لقطة متسقة؛ إذ إن واجهة النسخ الاحتياطي عبر الإنترنت في SQLite مصممة تحديدًا لإنشاء نسخة متسقة أثناء نشاط قاعدة البيانات. وتكون النسخة المتوقفة السليمة المعروفة أو النسخة الاحتياطية الفورية المدركة لقاعدة البيانات أكثر أمانًا من نسخ ملف عشوائي أُخذ أثناء عمليات الكتابة.
تأكد أيضًا من عدم خلط أي حالة WAL أو سجل جانبي من قاعدة البيانات المتعطلة بالنسخة المستعادة. ابدأ من مادة الاستعادة السليمة المعروفة الكاملة، لا من مزيج من ملفات ذات أوقات مختلفة.
ابدأ مع إبقاء النسخة الاحتياطية سليمة ودع Home Assistant يتحقق منها
ضع قاعدة البيانات المستعادة في المسار المتوقع مع الملكية والأذونات الصحيحة، ثم شغّل Home Assistant وراقب سجلات Recorder. لا تشغّل عمليات التنقية أو إعادة الحزم أو صيانة SQL اليدوية أثناء أول عملية إقلاع للتحقق.
إذا كان مخطط قاعدة البيانات أقدم من إصدار Home Assistant الحالي، فقد يحتاج Recorder إلى ترحيله. اسمح لهذه العملية باكتمالها قبل تقييم الأداء أو إعادة التشغيل. تجنب التبديل المتكرر بين إصدارات Home Assistant القديمة والجديدة باستخدام قاعدة البيانات المستعادة نفسها، لأن عمليات ترحيل المخطط ليست آلية عامة للرجوع إلى إصدار أقدم.
يوضح دليل عملي للاستعادة المبدأ المتحكم فيه نفسه: اعمل على نسخ، ولا تشغّل Home Assistant إلا بعد أن تصبح قاعدة البيانات البديلة جاهزة.
تحقق من السجل قبل إزالة قاعدة البيانات المتعطلة
- تأكد من بدء Recorder دون أخطاء تلف أو ترحيل.
- افتح History وLogbook لنطاق زمني يفترض أن يكون موجودًا في النسخة الاحتياطية.
- تحقق من الإحصاءات طويلة الأجل أو بيانات Energy إذا كانت هذه السجلات مهمة لك.
- فعّل تغييرًا جديدًا في الحالة وتأكد من كتابة سجل جديد بعد نقطة الاستعادة.
- أعد تشغيل Home Assistant مرة واحدة وتأكد من أن Recorder يفتح قاعدة البيانات نفسها مجددًا.
ينطبق دليل ZimaSpace حول النسخ الاحتياطية المتسقة لقواعد البيانات واختبارات الاستعادة مباشرةً: لا تصبح النسخة الاحتياطية موثوقة إلا عندما تقبلها قاعدة البيانات ويتمكن التطبيق من كتابة حالة جديدة بعد الاستعادة.
احتفظ بقاعدة البيانات المتعطلة حتى ينجح اختبار القبول هذا. فقد تظل تحتوي على سجل أحدث يمكن فحصه أو استعادته انتقائيًا إذا كانت النسخة السليمة المعروفة أقدم مما هو متوقع.
الأسئلة الشائعة
هل يمكنني استعادة سجل Home Assistant فقط دون التراجع عن الأتمتة؟
نعم، عندما تكون لديك نسخة سليمة معروفة من قاعدة بيانات Recorder ويكون إعداد Home Assistant الحالي سليمًا. أوقف عمليات الكتابة، واحتفظ بنسخة من قاعدة البيانات الحالية، واستعد قاعدة بيانات Recorder فقط، ثم تحقّق منها قبل التنظيف.
هل ينبغي استعادة نسخة احتياطية لقاعدة البيانات أُخذت من إصدار أقدم بكثير من Home Assistant؟
بحذر فقط. قد يُرحّل إصدار أحدث من Home Assistant مخطط Recorder الأقدم إلى الأمام، لكن الرجوع إلى إصدار أقدم والتبديل المتكرر بين الإصدارات باستخدام قاعدة بيانات واحدة أمر محفوف بالمخاطر. احتفظ بنسخ احتياطية واستخدم مسار استعادة متوافقًا.
الدعم والنصائح
المزيد للقراءة

علامات تدل على أن قاعدة بيانات Home Assistant تحتاج إلى صيانة أو استبدال
عادةً ما تحتاج قاعدة بيانات Home Assistant الكبيرة إلى ضبط مدة الاحتفاظ بالبيانات أو تنظيفها؛ أما تكرار تلفها أو ظهور أخطاء سلامة البيانات فيُعد...

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

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

