أدلة

استراتيجية نسخ احتياطي للمستأجرين في WordPress متعدد المستأجرين

فريق GrabWP
· 7 min read · مراجعة فريق GrabWP

إدارة مجموعة من مواقع العملاء على تثبيت WordPress واحد أمر فعال إلى أن يأتي اليوم الذي يحتاج فيه شخص ما إلى استعادة البيانات. إذا كانت أدوات النسخ الاحتياطي لديك تفكر فقط بمنطق “الخادم بأكمله”، فإن خطأ عميل واحد سيتحول إلى فترة توقف للجميع. لهذا السبب، تعتبر عمليات multi tenant wordpress backup ضرورية لضمان الأمان والمرونة. يجب أن تعمل أي استراتيجية نسخ احتياطي على مستوى دقيق لكل مستأجر (tenant): النسخ الاحتياطي، التنظيف، النقل إلى خادم خارجي، والاستعادة لكل عميل بشكل مستقل. يستعرض هذا الدليل كيفية تصميم أفضل wordpress tenant backup strategy باستخدام GrabWP Tenancy Pro.

لماذا تحتاج النسخ الاحتياطية للشبكة إلى دقة لكل مستأجر

الهدف الأساسي من بيئة multi-tenancy هو أن يتشارك المستأجرون في قاعدة برمجية واحدة مع الحفاظ على عزل بياناتهم. يجب أن تحترم استراتيجية النسخ الاحتياطي الخاصة بك هذه الحدود. تعد اللقطة الكاملة للخادم (snapshot) جيدة للتعافي من الكوارث، لكنها الأداة الخاطئة عندما يقوم العميل (أ) بحذف صفحة ويريد استعادتها. استعادة صورة كاملة للخادم لإصلاح مستأجر واحد يعني التراجع عن طلبات وتعليقات وتعديلات جميع المستأجرين الآخرين أيضًا.

يتعامل GrabWP Tenancy Pro مع كل مستأجر كوحدة نسخ احتياطي مستقلة. تلتقط النسخة الاحتياطية قاعدة بيانات هذا المستأجر وملفاته المرفوعة ومحتواه وإعداداته، بينما تعيد الاستعادة بناء هذه العناصر تحديدًا، ولا شيء غير ذلك، مما يسهل عمليات per tenant wordpress backup restore بكل دقة وموثوقية. يعني هذا أنه يمكنك استرجاع بيانات العميل (أ) إلى الأمس بينما يستمر العميل (ب) في تلقي التسجيلات هذا الصباح. بالنسبة للوكالات وشركات الاستضافة، هذا هو الفرق بين إصلاح يستغرق خمس دقائق وبين مشكلة تؤثر على الشبكة بأكملها. كما أنه يبقي نطاق الضرر صغيرًا: الاستعادة الخاطئة لا يمكن أن تؤثر إلا على المستأجر الذي استهدفته.

الجدولة: إعدادات افتراضية عامة مع تجاوزات لكل مستأجر

إعدادات النسخ الاحتياطي الافتراضية العامة مع تجاوزات لكل مستأجر في GrabWP Tenancy Pro

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

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

الاحتفاظ بالنسخ (Retention) هو النصف الآخر من الجدولة. يقوم GrabWP بتنظيف النسخ الاحتياطية المحلية والبعيدة بعد كل عملية ناجحة، بحيث يحتفظ فقط بالعدد الذي حددته. يحافظ هذا على حدود استخدام القرص ويمنع النسخ الاحتياطية القديمة من التراكم بصمت. قم بتعيين عدد النسخ المحتفظ بها لكل مستأجر بحيث يحتفظ المتجر ذو التغييرات الكثيرة بسجل أعمق من الموقع الثابت. اختر أرقامًا تناسب ميزانية التخزين الخاصة بك وتوقعات الاسترداد بدلاً من نسخ إعدادات افتراضية عامة.

الأمان الخارجي باستخدام S3

النسخ الاحتياطية التي تبقى فقط على نفس الخادم مع المواقع التي تحميها ليست نسخًا احتياطية حقيقية. يعد التخزين الخارجي أو wordpress backup s3 offload ميزة ضرورية في أي خطة. يدعم GrabWP التخزين البعيد المتوافق مع S3، بحيث يمكن لنسخ كل مستأجر أن تغادر الخادم. يتيح لك سجل برامج التشغيل إعادة استخدام بيانات اعتماد S3 التي قمت بتكوينها مسبقًا أو توفير بيانات اعتماد مخصصة لحاوية مخصصة.

هناك عدد قليل من الميزات التي تجعل هذا عمليًا على مستوى الشبكة:

  • النقل التلقائي (Auto-offload) يؤدي إلى بدء الرفع إلى S3 فور اكتمال النسخ الاحتياطي، وبالتالي لا توجد أي فترة زمنية تكون فيها النسخة الوحيدة محلية فقط.
  • السحب إلى الجهاز المحلي (Pull-to-local) يقوم بتنزيل نسخة احتياطية موجودة عن بُعد فقط من S3 إلى الخادم عندما تحتاج إليها للاستعادة، بحيث يمكنك الحفاظ على خفة الخادم واستعادة البيانات بسرعة.
  • الحذف عن بُعد (Remote deletion) من واجهة قائمة النسخ الاحتياطي يتيح لك مسح نسخة S3 دون مغادرة لوحة التحكم (dashboard).
  • حدود عدد الملفات لكل مستأجر تقوم تلقائيًا بتنظيف النسخ الاحتياطية البعيدة القديمة بمجرد تجاوز المستأجر لعدد الملفات الذي تم تكوينه في S3، بحيث يظل التخزين عن بُعد مقيدًا تمامًا مثل التخزين المحلي.

تعرض قائمة المستأجرين شارة لنوع التخزين (S3 أو Local) حتى تتمكن من رؤية أي المستأجرين محميون خارجيًا وأيهم ليسوا كذلك بلمحة واحدة. استخدمها كقائمة تحقق: لا ينبغي أن يظل أي عميل معتمدًا على التخزين المحلي فقط لفترة طويلة.

سير عمل الاستعادة

سير عمل الاستعادة لكل مستأجر في GrabWP Tenancy Pro

النسخة الاحتياطية التي لم تقم باستعادتها أبدًا هي مجرد أمل، وليست خطة. عملية الاستعادة في GrabWP هي عملية منظمة ومتعددة الخطوات بواجهة تقدم تعتمد على AJAX حتى تتمكن من مشاهدة اكتمال كل مرحلة بدلاً من التحديق في أيقونة تحميل فارغة. تعمل عملية النسخ الاحتياطي نفسها كمهمة من 7 خطوات، بينما تعمل عملية الاستعادة كمهمة من 8 خطوات، تغطي قاعدة بيانات المستأجر، والملفات المرفوعة، والمحتوى، والإعدادات.

تمنحك صفحة الاستعادة علامتي تبويب. تقوم علامة التبويب النسخ الاحتياطية الحالية بالاستعادة من نسخة موجودة بالفعل على القرص، وهو المسار الشائع لـ “التراجع عن تغييرات الأمس”. تتيح لك علامة التبويب الرفع الاستعادة من ملف نسخ احتياطي تقوم بإحضاره إلى الخادم، وهي الطريقة التي تنقل بها مستأجرًا بين البيئات أو تستعيد بياناته من نسخة مؤرشفة. يتم دعم الاستعادة عبر قواعد البيانات بغض النظر عن نوع قاعدة البيانات، بحيث يمكن إعادة بناء المستأجر الذي تم أخذ نسخته على محرك قاعدة بيانات واحد على محرك آخر دون الحاجة إلى تعديل التفريغات (dumps) يدويًا.

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

لاحظ الحدود هنا. هذا هو النسخ الاحتياطي والاستعادة لكل مستأجر داخل GrabWP Tenancy Pro. إضافة GrabWP Restore المجانية المنفصلة هي أداة مختلفة تعيد بناء ملف تصدير ZIP الخاص بإصدار Pro إلى موقع مستقل. الجأ إليها عندما تقوم بنقل مستأجر خارج الشبكة، وليس لاستعادة روتينية لشبكة المواقع.

الأتمتة باستخدام WP-CLI و Schedule Assurance

كل ما سبق قابل للبرمجة النصية (scriptable). يأتي GrabWP مزودًا بأوامر WP-CLI لتشغيل نسخة احتياطية، وتكوين جدول زمني للمستأجر، وعرض الحالة مع السجل الأخير، وإعادة جدولة كل مستأجر في وقت واحد. هذا يجعل النسخ الاحتياطية جزءًا أساسيًا من عمليات الإعداد (provisioning) وسير عمل CI الخاص بك: قم بإنشاء مستأجر، وحدد جدوله الزمني، وامضِ قدمًا. تعد إعادة جدولة الشبكة بالكامل في أمر واحد أمرًا مفيدًا بعد تغيير سياستك العامة.

المحذور مع أي جدولة في WordPress هو WP-Cron، والذي لا يعمل إلا عندما يحصل الموقع على زيارات. على مستأجر هادئ، قد يتأخر النسخ الاحتياطي الذي “ينبغي” أن يعمل يوميًا. صُممت ميزة Schedule Assurance في إعدادات Pro خصيصًا لهذا الغرض: فهي تعرض حالة WP-Cron، وموعد النسخة الاحتياطية المجدولة التالية، والفترات الزمنية المتاحة، وتقدم توجيهات لربط system cron حقيقي عندما يكون WP-Cron معطلاً. الإعداد الموثوق لشبكة مواقع جدية هو تعطيل WP-Cron وتشغيل wp على crontab الخاص بالنظام، بحيث يتم تشغيل النسخ الاحتياطية المجدولة للمستأجرين في وقت ثابت بغض النظر عن حركة الزيارات.

استراتيجية أساسية موصى بها

لجمع كل ذلك معًا، إليك نقطة بداية منطقية يمكنك تعديلها لتناسب احتياجات التخزين والاستعادة الخاصة بك:

  1. قم بتعيين جدول زمني يومي عام كإعداد افتراضي، ثم تجاوزه للمستأجرين النشطين (مرتين يوميًا أو كل ساعة) والمستأجرين الهادئين (أسبوعيًا).
  2. قم بتعيين عدد النسخ المحتفظ بها لكل مستأجر بما يتناسب مع معدل التغيير لكل مستأجر، بحيث تحتفظ المتاجر ذات الزيارات العالية بسجل أعمق.
  3. قم بتشغيل النقل التلقائي إلى S3 لكل مستأجر وقم بتعيين حد أقصى لعدد الملفات لكل مستأجر بحيث ينظف التخزين عن بُعد نفسه.
  4. قم بتشغيل الجداول الزمنية من خلال system cron مع تعطيل WP-Cron، وتحقق من Schedule Assurance بعد أي تغيير.
  5. اختبر عمليات الاستعادة بانتظام عن طريق إعادة بناء مستأجر في بيئة تجريبية (scratch environment).

يمنحك ذلك استعادة دقيقة، وتخزينًا محدودًا على كلا الجانبين، ونسخًا خارجية دون الحاجة للمراقبة المستمرة.

إضافة GrabWP Tenancy الأساسية مجانية على WordPress.org، بينما تأتي ميزات النسخ الاحتياطي لكل مستأجر، والجدولة، والنقل إلى S3، والاستعادة عبر قواعد البيانات مع إصدار GrabWP Tenancy Pro مقابل $9.99/month. إذا كنت لا تزال تقرر كيفية عزل بيانات المستأجرين في المقام الأول، فاقرأ دليلنا المرافق حول استخدام MySQL مخصص مقابل SQLite في WordPress لكل مستأجر.

مقالات ذات صلة

الأسئلة الشائعة

هل يمكنني استعادة بيانات مستأجر واحد دون التأثير على الباقين؟
نعم. يقوم GrabWP Tenancy Pro بالنسخ الاحتياطي والاستعادة لكل مستأجر بشكل مستقل. عملية الاستعادة تعيد بناء قاعدة بيانات المستأجر وملفاته المرفوعة ومحتواه وإعداداته فقط، لذا تستمر باقي شبكتك في العمل دون أي مساس.
أين يتم تخزين النسخ الاحتياطية البعيدة؟
يدعم GrabWP التخزين السحابي المتوافق مع S3. يمكنك إعادة استخدام بيانات اعتماد S3 الحالية أو إضافة بيانات مخصصة، والنقل التلقائي لكل نسخة احتياطية إلى S3 بمجرد اكتمالها، وسحب النسخ المحفوظة عن بُعد فقط إلى الخادم عند الحاجة إليها.
ماذا يحدث إذا كان WP-Cron غير موثوق به على خادمي؟
في إعدادات Pro، تعرض ميزة Schedule Assurance حالة WP-Cron، وموعد النسخة الاحتياطية المجدولة التالية، والفترات الزمنية المتاحة. وعند تعطيل WP-Cron، تقدم توجيهات حول system-cron حتى تعمل النسخ الاحتياطية المجدولة للمستأجرين في وقتها المحدد.

Editorial standards: Our content is written by WordPress experts with hands-on multi-tenancy experience. Articles are fact-checked and regularly updated to ensure accuracy.