النسخ الاحتياطي والتكرار شيئان مختلفان.
توفر النسخ الاحتياطية لقطة للبيانات في نقطة معينة. إنها توفر نقطة استعادة.
التكرار هو توزيع كل إجراء على نظام مختلف حتى يكون لديك في أكثر من موقع واحد. يتم أيضًا تكرار عمليات الحذف.
إذا كنت تريد حقًا أن تكون متسامحًا مع الأخطاء، فأنت بحاجة إلى كليهما. (والمزيد…)
لذلك يحل التكرار فقط مشكلة وجود بيانات حالية في أماكن متعددة. توفر النسخ الاحتياطية طريقة لاستعادة النظام إلى نقطة زمنية معينة.
يستخدم Discourse آليتين للتخزين:
- قاعدة بيانات PostgreSQL لكل شيء باستثناء الملفات المرفقة
- يتم تخزين الملفات المرفقة على النظام المحلي أو في S3
لنسخ البيانات المخزنة في قاعدة بيانات PostgreSQL احتياطيًا و/أو تكرارها، يمكنك مراجعة وثائق PostgreSQL حول كيفية القيام بذلك. بخصوص النسخ الاحتياطي، والتكرار.
الملفات المرفقة أكثر تعقيدًا بعض الشيء. إذا قمت بتخزينها في S3، يمكنك استخدام نسخ S3 الاحتياطية. بالنسبة للملفات المخزنة محليًا، يمكنك استخدام مجموعة متنوعة من خيارات النظام المحلي.
يعد إنشاء نسخ احتياطية كاملة مهمة ثقيلة تعتمد على كمية البيانات. لذلك لا يمكن القيام بذلك بسهولة بشكل متكرر. إجراء النسخ الاحتياطي القياسي لـ Discourse هو إنشاء نسخ احتياطية كاملة. إذا كنت تريد حقًا تقليل خطر فقدان البيانات، فأنت بحاجة إلى البحث عن خيارات أخرى.
قد يوفرها مزود الاستضافة الخاص بك أحد الخيارات: لقطات وحدات التخزين (volume snapshots). يوفر هذا طريقة لإنشاء نسخة “فورية” للبيانات المخزنة في وحدة تخزين. يتيح لك هذا استعادة وحدة التخزين إلى ذلك الوقت. قد تتوفر لقطات وحدات التخزين أيضًا داخل نظام التشغيل اعتمادًا على نظام الملفات المستخدم. (يدعم btrfs هذا على سبيل المثال.)
بالإضافة إلى ذلك، تتناول وثائق PostgreSQL أيضًا إنشاء نسخ احتياطية أكثر استمرارية لقاعدة البيانات مما يسمح باستعادة ممتازة لنقطة زمنية محددة لقاعدة البيانات. (لا تنس إرسال النسخ الاحتياطية إلى موقع خارجي.) هذا أسرع بكثير من النسخ الاحتياطية الكاملة.
للحصول على نسخ احتياطية أكثر دقة للمرفقات، يمكنك استخدام أدوات نسخ احتياطي مختلفة تسمح بإدارة النسخ الاحتياطية الكاملة + التفاضلية. على سبيل المثال duplicity. أو يمكنك استخدام rsync (بدون حذف). بين اللقطات، لا يزال بإمكانك فقدان الملفات. سيكون استخدام S3 بدون حذف أكثر أمانًا لأن الملفات موجودة بالفعل على نظام آخر.
في الختام. آلية النسخ الاحتياطي القياسية لـ Discourse ليست مناسبة لجدول نسخ احتياطي أكثر تكرارًا. إذا كنت تريد المزيد من النسخ الاحتياطية، فاستخدم مزيجًا من ميزات النسخ الاحتياطي/التكرار القياسية لـ PostgreSQL، وS3، ولقطات وحدات التخزين، وما إلى ذلك.
على موقعي، لا أستخدم نظام النسخ الاحتياطي الخاص بـ Discourse للنسخ الاحتياطية العادية. لا يزال لدي نسخ احتياطية يومية، ولكني أستخدم مزيجًا من تكوينات pg_dumps وduplicity (يتم تنسيقها عبر backupninja).