نسخ أودو (Odoo) الاحتياطية: يومية، ومُختبَرة بالاستعادة، وخارج الموقع
ما الذي تتضمنه نسخة أودو الاحتياطية الكاملة، وكم تحتفظ بالنسخ، ولماذا لا يُعتدّ بالنسخة قبل استعادتها، وكيف تحميك النسخ المشفّرة خارج الموقع من فقدان خادم.
بقلم محمد سلمان علي خان، مؤسس Knova Digital Solutions · نُشر في · 6 دقائق للقراءة · النسخ الاحتياطية, استضافة أودو, الأمان
لا أحد يفكر في النسخ الاحتياطية حتى اليوم الذي يحتاج فيه إلى إحداها. وفي ذلك اليوم، تحدد ثلاثة أسئلة ما إذا كان الأمر مجرد إزعاج أم كارثة: هل تحتوي النسخة الاحتياطية على كل شيء، وهل هي حديثة بما يكفي، وهل تُستعاد فعلًا؟ تتناول هذه المقالة كل سؤال منها في أودو، وتبيّن كيف يجيب عنها Cloud Buddy.
ما الذي يجب أن تحتويه نسخة Odoo الاحتياطية
توجد قاعدة بيانات أودو (ويُكتب أيضًا «اودو») في مكانين:
- قاعدة بيانات PostgreSQL: كل سجل، من جهات الاتصال إلى قيود اليومية.
- مخزن الملفات (filestore): المرفقات، وصور المنتجات، والمستندات الممسوحة ضوئيًا، وملفات PDF المُنشأة. يخزّن Odoo هذه العناصر كملفات على القرص، لا داخل قاعدة البيانات.
النسخة الاحتياطية لقاعدة البيانات وحدها تعيد إليك Odoo تغيب عنه كل المرفقات. ومن السهل على نحو مفاجئ أن يفوتك ذلك، لأن كل شيء يبدو سليمًا إلى أن يفتح أحدهم ملف PDF لفاتورة.
يجمع تنسيق النسخ الاحتياطي القياسي في Odoo بين الاثنين: ملف zip يضم dump.sql ومجلد filestore وملف manifest.json يصف قاعدة البيانات. وهو التنسيق الذي ينتجه مدير قواعد البيانات في Odoo ويستعيده، وهو التنسيق الذي يستخدمه Cloud Buddy في كل نسخة احتياطية. كما تتضمن نسخ الإنتاج الاحتياطية جلسات HTTP في Odoo عندما يكون ذلك المجلد صغيرًا، كي لا تؤدي الاستعادة إلى الإنتاج إلى تسجيل خروج الجميع؛ ويتجاهلها مدير قواعد البيانات في Odoo، لذا يظل ملف zip قابلًا للاستيراد في أي مكان.
كم مرة، وإلى متى
رقمان يصفان سياسة النسخ الاحتياطي:
- مقدار العمل الذي تحتمل خسارته يحدد عدد مرات النسخ. فالنسخ الاحتياطية اليومية تعني أنك، في أسوأ الأحوال، ستعيد إدخال عمل يوم واحد على الأكثر.
- المدى الذي قد تحتاج إلى الرجوع إليه يحدد مدة الاحتفاظ. فكثير من المشكلات يُكتشف متأخرًا: استيراد خاطئ يُلاحَظ في نهاية الشهر، أو منتج محذوف يُكتشف عند الجرد التالي للمخزون.
الاحتفاظ بكل نسخة يومية إلى الأبد مكلف، والاحتفاظ بنسخ الأسبوع الأخير فقط محفوف بالمخاطر. أما التدوير فيمنحك نقاط استعادة حديثة وأقدم معًا:
| النوع | عدد النسخ المحفوظة | ما تغطيه |
|---|---|---|
| يومية | 7 | الأسبوع الأخير، يومًا بيوم |
| أسبوعية | 4 | الشهر الأخير |
| شهرية | 3 | نحو ثلاثة أشهر |
هذا هو التدوير الذي يطبّقه Cloud Buddy على كل قاعدة بيانات إنتاج. وفوق ذلك:
- نسخ التحديث الاحتياطية. تُؤخذ نسخة احتياطية قبل تحديث الوحدات في الإنتاج. وإذا فشل التحديث، تُستعاد تلقائيًا ويعود البناء السابق إلى العمل. ويُحتفظ بآخر خمس نسخ منها.
- النسخ الاحتياطية اليدوية. يُنشئ زر Back up now نسخة احتياطية متى أردت، قبل استيراد كبير مثلًا. ويُحتفظ بالنسخ اليدوية ثلاثة أيام، بحد أقصى خمس نسخ في اليوم.
لا تُنسخ بيئتا التجهيز والتطوير احتياطيًا بشكل تلقائي: فهما نسختان يمكن إعادة بنائهما من الإنتاج.
لا يُعتدّ بالنسخة الاحتياطية إلا بعد استعادتها
تفشل النسخ الاحتياطية بصمت. تفريغ لقاعدة البيانات انقطع بسبب امتلاء القرص، أو مخزن ملفات نُسخ قبل أن تكتمل كتابته، أو مشكلة في الصلاحيات أسقطت بعض الملفات: لا يظهر شيء من ذلك حتى تحاول الاستعادة.
والفحص الموثوق الوحيد هو الاستعادة. على Cloud Buddy، ومرة في الأسبوع تقريبًا لكل مشروع، تُستعاد أحدث نسخة احتياطية يومية للإنتاج في قاعدة بيانات مؤقتة وتُفحص:
- يُفتح ملف zip، ويجب أن يحتوي مخزن الملفات على عدد الملفات نفسه الذي يذكره ملف manifest في النسخة.
- يُحمَّل التفريغ في قاعدة بيانات مؤقتة باستخدام دور قاعدة البيانات الخاص بالمشروع، تمامًا كما في الاستعادة الفعلية.
- تُشغَّل عليها استعلامات تحقق أساسية: أن الوحدة الأساسية (base) في Odoo مثبّتة، وأن هناك مستخدمين، وأن عينة عشوائية من المرفقات موجودة في مخزن الملفات، مع قراءة جزء من العينة بالكامل.
- إذا كانت للنسخة الاحتياطية نسخة خارج الموقع، فيجب أن يطابق حجمها حجم ملف zip المحلي.
بعد ذلك تُحذف قاعدة البيانات المؤقتة، وتظهر النتيجة على النسخة الاحتياطية في تبويب Backups. وعند الفشل، يُبلَّغ مسؤولو المشروع بالبريد الإلكتروني وداخل التطبيق. ويمكنك أيضًا بدء الفحص بنفسك عبر Verify now.
تعمل اختبارات الاستعادة ليلًا، بأولوية منخفضة، ولا تمسّ أبدًا قاعدة بيانات الإنتاج أو ملفاتها.
نسخ مشفّرة خارج الموقع
النسخة الاحتياطية الموجودة على خادم الإنتاج نفسه تحميك من الأخطاء: استيراد خاطئ، أو سجل محذوف، أو تحديث فاشل. لكنها لا تحميك من فقدان الخادم نفسه، ولهذا تحتاج إلى نسخة في مكان آخر.
عند إعداد التخزين خارج الموقع على المنصة، تُنسخ كل نسخة احتياطية يومية وكل نسخة تحديث إلى موقع ثانٍ فور إنشائها:
- مشفّرة قبل أن تغادر الخادم. يُشفَّر كل ملف على الخادم قبل رفعه، فلا يرى مزوّد التخزين إلا أسماء ومحتويات مشفّرة.
- مدة الاحتفاظ نفسها. تتبع النسخ خارج الموقع التدوير المحلي: فعندما تُحذف نسخة احتياطية محليًا، تُحذف نسختها البعيدة أيضًا.
- حالة مرئية. تعرض كل نسخة احتياطية حالتها خارج الموقع (نُسخت، أو قيد الرفع، أو فشلت مع زر Retry)، وتعرض صفحة Status الخاصة بالمشروع وقت إنشاء آخر نسخة.
- قابلة للاستعادة. إذا لم يعد ملف zip المحلي موجودًا، يبدأ Restore بتنزيله من النسخة خارج الموقع.
وهذه هي فكرة «3-2-1» الكلاسيكية مطبّقة عمليًا: عدة نسخ، على أكثر من نوع واحد من التخزين، وإحداها في موقع آخر.
الاستعادة بلا قلق
أكثر عمليات الاستعادة أمانًا هي التي لا تمسّ الإنتاج. من تبويب Backups، استخدم Restore لاستعادة أي نسخة احتياطية للإنتاج إلى فرع تجهيز: تُستعاد كنسخة محيَّدة، تُحتجز فيها رسائل البريد الإلكتروني وتُعطَّل الإجراءات المجدولة. وهذا مثالي لأسئلة مثل «كيف كان هذا السجل يوم الثلاثاء الماضي؟»، ولنسخ بضعة سجلات يدويًا.
أما الاستعادة إلى الإنتاج فتعيده تمامًا كما كان وقت أخذ النسخة الاحتياطية، وكل ما أُنجز بعد ذلك يضيع. لذا خذ نسخة عبر Back up now أولًا، كي تتمكن من التراجع إن غيّرت رأيك.
نسختك الخاصة
مهما كانت وعود مزوّدك، احتفظ بقدرتك على المغادرة. يمكن تنزيل كل نسخة احتياطية على Cloud Buddy، مع مخزن الملفات أو من دونه، كنسخة Odoo احتياطية قياسية يستطيع مدير قواعد البيانات في Odoo نفسه استعادتها في أي مكان. وتنزّل بعض الفرق نسخة شهرية إلى وحدات التخزين الخاصة بها كسياسة ثابتة؛ وفي القطاعات الخاضعة للتنظيم، كثيرًا ما يكون ذلك متطلبًا إلزاميًا.
قائمة تحقق للنسخ الاحتياطي
استخدم هذه القائمة مع أي استضافة لأودو، لدينا أو لدى غيرنا:
- النسخ الاحتياطية تشمل مخزن الملفات، لا قاعدة البيانات وحدها
- نسخ يومية، مع الاحتفاظ بنسخ أسبوعية وشهرية لعدة أشهر
- تُؤخذ نسخة احتياطية تلقائيًا قبل كل تحديث للإنتاج
- تُستعاد النسخ الاحتياطية وفق جدول منتظم، وتُبلَّغ أنت بأي فشل
- يُحتفظ بنسخة مشفّرة في موقع ثانٍ
- يمكنك الاستعادة إلى نسخة دون المساس بالإنتاج
- يمكنك تنزيل نسخة Odoo احتياطية قياسية في أي وقت
تجد تفاصيل طريقة تعامل Cloud Buddy مع النسخ الاحتياطية في صفحة الميزات، وهي مشمولة في كل خطة على صفحة الأسعار. وإذا كنت تقارن بين المزوّدين في الخليج، فإن مقال استضافة Odoo في الإمارات: ما الذي يجب مراعاته عند الاختيار يغطي الأسئلة الأخرى التي ينبغي طرحها.