
تصبح كل قاعدة بيانات Odoo في نهاية المطاف المصدر الوحيد للحقيقة في الشركة: الفواتير، ومستويات المخزون، ومدخلات الرواتب، وتاريخ العملاء، والمستندات الموقعة، كلها موجودة فيها. وفقدانها، أو استعادة نسخة ناقصة منها، قد يوقف العمليات لأيام. ومع ذلك، فإن شركات كثيرة لا تكتشف الثغرات في نهج النسخ الاحتياطي لديها إلا في اليوم الذي تحتاج فيه إليه.
يتناول هذا المقال أساسيات إدارة قواعد البيانات والنسخ الاحتياطي والتعافي من الكوارث في Odoo 19 Enterprise، مع ملاحظات حول أوجه الاختلاف في تثبيتات Community المستضافة ذاتيًا. وهو موجه إلى أصحاب الأعمال والمديرين الماليين ومسؤولي تقنية المعلومات الذين يحتاجون إلى صورة واضحة دون قراءة كل صفحة تقنية.
ملاحظة حول المصادر: يستند هذا الدليل إلى وثائق Odoo الرسمية للإصدار 19. ومنصات الاستضافة وخياراتها تتطور، لذا تحقق من كل خطوة في قاعدة بيانات تجريبية ووفق الوثائق الرسمية الحالية قبل الاعتماد عليها في بيئة الإنتاج.
ما الذي تحتويه النسخة الاحتياطية الكاملة لـ Odoo
قاعدة بيانات Odoo ليست مجرد قاعدة بيانات PostgreSQL. فالمرفقات مثل المستندات المرفوعة والصور وغيرها من المحتوى الثنائي تُخزَّن كملفات فيما يسميه Odoo مخزن الملفات (filestore)، ويتحكم Odoo في الوصول إليها. والنسخة الاحتياطية التي لا تحتوي إلا على تفريغ قاعدة البيانات ستستعيد سجلاتك لكنها ستترك المرفقات مفقودة.
تصف وثائق Odoo.sh نسخها الاحتياطية بأنها تتضمن تفريغ قاعدة البيانات، ومخزن الملفات (المرفقات والحقول الثنائية)، والسجلات، والجلسات. وهذا مرجع مفيد لما ينبغي أن تبدو عليه النسخة الاحتياطية الكاملة في أي نوع من أنواع الاستضافة.
- تفريغ قاعدة البيانات: جميع السجلات والإعدادات والمستخدمين والقيود المحاسبية والتهيئات.
- مخزن الملفات: المرفقات والحقول الثنائية، مثل فواتير الموردين الممسوحة ضوئيًا وصور المنتجات وملفات PDF الموقعة.
- الكود المخصص: في Odoo.sh والاستضافة المحلية، توجد وحداتك المخصصة في مستودع الأكواد الخاص بك، الذي يحتاج إلى حماية خاصة به.
- الإعدادات: في الاستضافة المحلية، ينبغي توثيق ملف إعدادات Odoo وتهيئة الخادم وحفظهما بأمان أيضًا.
عند فحص نسخة احتياطية، تأكد دائمًا من وجود كل من التفريغ ومخزن الملفات. فغياب مخزن الملفات من أكثر الأسباب شيوعًا لظهور قاعدة البيانات المستعادة سليمة في البداية ثم ظهور صور معطوبة ومستندات مفقودة.

النسخ الاحتياطي حسب نوع الاستضافة
تعتمد مسؤولية النسخ الاحتياطي على مكان تشغيل قاعدة بياناتك. فـ Odoo Online وOdoo.sh تستضيفهما Odoo وتشملان نسخًا احتياطية تلقائية، بينما يجعل الخادم المحلي فريقك مسؤولًا بالكامل. وإصدار Community يُستضاف عادةً استضافة ذاتية، لذا تنطبق عليه مسؤوليات الاستضافة المحلية الموضحة أدناه.
Odoo Online: مدير قواعد البيانات
في Odoo Online، تنص الوثائق الرسمية على أن قواعد البيانات تُنسخ احتياطيًا يوميًا وفق اتفاقية مستوى الخدمة للاستضافة السحابية من Odoo. ولا تحتاج إلى جدولة أي شيء حتى تتم النسخ الاحتياطية للمنصة.
يوفر مدير قواعد البيانات، الذي تصل إليه بتسجيل الدخول كمسؤول لقاعدة البيانات، خيار الإدارة الذي يضم الإجراءات الرئيسية التي تحتاجها لأعمال النسخ الاحتياطي والاختبار.
- تنزيل نسخة احتياطية يُنتج ملف ZIP لقاعدة البيانات يمكنك الاحتفاظ به في أرشيفك الخاص.
- إذا كان خيار تنزيل نسخة احتياطية معطّلًا، فهذا يعني أن قاعدة البيانات أكبر من أن يتعامل معها المدير، وينبغي التواصل مع دعم Odoo للحصول على طريقة تنزيل أخرى.
- النسخ يُنشئ نسخة من قاعدة البيانات؛ ويكون خيار لأغراض الاختبار مفعّلًا افتراضيًا، وهو يعطّل الإجراءات الخارجية مثل رسائل البريد الإلكتروني والدفعات وأوامر التسليم.
- الحذف يزيل قاعدة البيانات فورًا لجميع المستخدمين ولا يمكن التراجع عنه، لذا نزّل نسخة احتياطية أولًا.
وفقًا للوثائق، تنتهي صلاحية النسخ المكررة على Odoo Online بعد 15 يومًا، ويمكن أن يكون لكل قاعدة بيانات ما يصل إلى خمس نسخ مكررة. تعامل مع النسخ المكررة كبيئات اختبار قصيرة العمر، لا كاستراتيجية للنسخ الاحتياطي.
Odoo.sh: النسخ الاحتياطية التلقائية واليدوية
في Odoo.sh، تُنسخ قاعدة بيانات الإنتاج احتياطيًا تلقائيًا كل يوم. وتنص الوثائق على الاحتفاظ بسبع نسخ احتياطية يومية وأربع أسبوعية وثلاث شهرية، مع حفظ النسخ الشهرية على خوادم مخصصة للنسخ الاحتياطي. وتتطلب استعادة تلك النسخ الشهرية أو تنزيلها التواصل مع دعم Odoo.
لا تُنسخ فروع الاختبار المرحلي والتطوير احتياطيًا بشكل تلقائي. ويمكن أخذ نسخ احتياطية يدوية لبيئتي الإنتاج والاختبار المرحلي لالتقاط لقطة محددة، على سبيل المثال قبل تغيير محفوف بالمخاطر في الإعدادات. وتبقى متاحة لمدة ثلاثة أيام، وتذكر الوثائق حدًا أقصى قدره خمس نسخ احتياطية يدوية يوميًا. ولا يمكن أخذ نسخ احتياطية يدوية لقواعد بيانات التطوير.
تُنشئ Odoo.sh أيضًا نسخة احتياطية تلقائية، موسومة كنسخة احتياطية للتحديث، عندما يغيّر التزام مدمج (commit) إصدارات الوحدات أو تبعيات Python المرتبطة. وإذا لم يغيّر الدمج أيًّا منها، فلا تُنشأ نسخة احتياطية، لذا خذ نسخة احتياطية يدوية قبل أي تغييرات مهمة في بيئة الإنتاج.
- استخدم تبويب النسخ الاحتياطية في فرع الإنتاج لمراجعة النسخ الاحتياطية أو تنزيلها أو استعادتها.
- استعد نسخة احتياطية من بيئة الإنتاج إلى فرع اختبار مرحلي عندما تريد الاختبار على بيانات حقيقية.
- استخدم خاصية استيراد قاعدة البيانات لجلب الأرشيفات من مدير قواعد البيانات القياسي، أو من مدير قواعد البيانات في Odoo Online، أو من تبويب النسخ الاحتياطية، أو من خيار تنزيل تفريغ قاعدة البيانات الخاص بإحدى البيئات.
الاستضافة المحلية: فريقك يتحمل كل شيء
على خادمك الخاص، لا يُنسخ أي شيء احتياطيًا ما لم تُعدّه بنفسك. والإرشادات الرسمية للنشر صريحة: أعدّ نسخًا احتياطية يومية لقواعد بياناتك وبيانات مخزن الملفات، وانسخها إلى خادم أرشفة بعيد لا يمكن الوصول إليه من الخادم نفسه.
تحذر الإرشادات نفسها من أن مدير قواعد البيانات المستند إلى الويب أداة مخصصة للتطوير والعروض التوضيحية، وغير مصممة للاستخدام في بيئة الإنتاج. ويوصى بشدة بتعطيله على أي نظام متاح عبر الإنترنت، وينبغي أن يتولى مسؤول النظام عمليات الإنتاج مثل النسخ الاحتياطي الآلي.
- احمِ شاشات إدارة قواعد البيانات بكلمة مرور رئيسية قوية مُنشأة عشوائيًا ومضبوطة في ملف الإعدادات، ولا تستخدم القيمة الافتراضية أبدًا.
- عطّل عرض قائمة قواعد البيانات على الخوادم المتاحة عبر الإنترنت، واستخدم مرشحًا لقواعد البيانات بحيث يرتبط كل اسم مضيف بقاعدة البيانات الصحيحة.
- شغّل مستخدم PostgreSQL الخاص بـ Odoo دون صلاحيات المستخدم الفائق، كما تشترط وثائق النشر.
- انسخ قاعدة البيانات ومخزن الملفات احتياطيًا معًا، حتى يظلا متسقين مع بعضهما.
قبل التغييرات الكبرى مثل الانتقال من Community إلى Enterprise، تذكر الوثائق الرسمية أن الخطوة الأولى هي أخذ نسخة احتياطية من قاعدة بيانات Community. وطبّق العادة نفسها قبل أي ترقية أو تثبيت وحدة أو استيراد بيانات.
نسخ قواعد البيانات بأمان: التحييد
الاختبار على نسخة من بيئة الإنتاج هو أكثر الطرق أمانًا لتجربة تدفقات عمل جديدة أو عمليات استيراد أو ترقيات، لكن النسخة غير المدروسة قد ترسل رسائل بريد إلكتروني حقيقية إلى العملاء أو تُطلق دفعات حقيقية. ويعالج Odoo ذلك بقواعد البيانات المُحيَّدة، التي تعرّفها الوثائق بأنها قواعد بيانات غير إنتاجية تُعطَّل فيها عدة معاملات.
قواعد بيانات الاختبار مُحيَّدة دائمًا، بما في ذلك نسخ النسخ الاحتياطية، والنسخ المكررة، وقواعد بيانات الاختبار المرحلي والتطوير على Odoo.sh. وقائمة الوثائق لما يُعطَّل ليست حصرية صراحةً، وتشمل ما يلي.
- الإجراءات المجدولة، مثل الفوترة التلقائية للاشتراكات والرسائل البريدية الجماعية.
- رسائل البريد الإلكتروني الصادرة، التي تُلتقط في بيئة الاختبار المرحلي على Odoo.sh بواسطة أداة التقاط البريد بدلًا من إرسالها.
- المزامنة البنكية ومزوّدو الدفع وطرق التسليم.
- رموز IAP، وظهور الموقع الإلكتروني لمحركات البحث.
يميّز شريط أحمر في أعلى الشاشة قاعدة البيانات المُحيَّدة حتى يدرك المستخدمون فورًا أنهم ليسوا في بيئة الإنتاج. درّب فريقك على التحقق من هذا الشريط قبل إدخال أي شيء، ولا تُزل التحييد من أي نسخة ما لم تكن تفهم العواقب فهمًا كاملًا.
الاحتفاظ والنسخ خارج الموقع وRPO وRTO
النسخ الاحتياطية للمنصة شبكة أمان قوية، لكن السياسة السليمة تحتفظ أيضًا بنسخ مستقلة تحت سيطرتك. فبالنسبة لقواعد البيانات المستضافة، نزّل نسخة احتياطية كاملة بشكل دوري واحفظها في موقع منفصل ومضبوط الوصول. أما للخوادم المحلية، فالنسخ خارج الموقع ضرورية وليست اختيارية.
يساعدك مقياسان بسيطان على تحديد مقدار الحماية الذي تحتاجه. فهدف نقطة الاستعادة، أو RPO، هو مقدار البيانات الحديثة الذي يمكنك تحمل فقدانه؛ والنسخ الاحتياطي اليومي يعني أنك قد تفقد ما يصل إلى يوم كامل من العمل. أما هدف وقت الاستعادة، أو RTO، فهو المدة التي يمكن للشركة أن تعمل خلالها دون النظام أثناء استعادته.
اتفق على هذين الهدفين مع الإدارة، ثم تحقق مما إذا كان إعدادك الحالي يحققهما. فإذا كان فقدان يوم كامل من أوامر البيع غير مقبول، فالنسخ الاحتياطية اليومية وحدها لا تكفي، وينبغي أن تناقش لقطات أكثر تكرارًا أو تدابير أخرى مع مزوّد الاستضافة أو فريق تقنية المعلومات لديك.
اختبار الاستعادة وقائمة مراجعة عملية
لا تثبت صلاحية النسخة الاحتياطية إلا بعد استعادتها. جدوِل اختبار استعادة على فترات منتظمة، واستعد إلى بيئة اختبار مُحيَّدة، وتأكد من أن المستخدمين يستطيعون تسجيل الدخول، وأن السجلات الحديثة موجودة، وأن المرفقات تُفتح بشكل صحيح. وقِس زمن العملية حتى تعرف قيمة RTO الفعلية لديك.
- تأكد من نوع الاستضافة الذي تستخدمه ومن المسؤول عن النسخ الاحتياطي.
- تحقق من أن النسخ الاحتياطية تتضمن كلًّا من تفريغ قاعدة البيانات ومخزن الملفات.
- احتفظ بنسخة مستقلة منزّلة في موقع منفصل ومؤمَّن.
- خذ نسخة احتياطية يدوية قبل الترقيات أو عمليات الاستيراد الكبيرة أو التغييرات الكبرى في الإعدادات.
- استخدم النسخ المكررة المُحيَّدة أو فروع الاختبار المرحلي لجميع الاختبارات.
- استعد نسخة احتياطية إلى بيئة اختبار بانتظام وسجّل النتائج.
- وثّق أهداف RPO وRTO وراجعها كل عام.
- في الاستضافة المحلية، عطّل مدير قواعد البيانات العام واحمِ كلمة المرور الرئيسية.
كيف يمكن أن تساعدك 1CBMS
تصمم 1CBMS روتينات النسخ الاحتياطي والتعافي وتراجعها لمشاريع Odoo 19 في مصر والعراق، على Odoo Online وOdoo.sh والخوادم المحلية. ويمكننا تدقيق إعدادك الحالي، وتحديد أهداف واقعية لـ RPO وRTO مع إدارتك، وإعداد بيئات اختبار مُحيَّدة، وإجراء اختبار استعادة موثق مع فريقك، حتى يصبح التعافي إجراءً متدرَّبًا عليه لا حالة طوارئ.