إعداد النسخ الاحتياطي التلقائي لـ Discourse

:bookmark: يشرح هذا الدليل كيفية تكوين النسخ الاحتياطي التلقائي لـ Discourse، بما في ذلك خيارات التخزين على الخوادم المحلية والتخزين المتوافق مع S3.

تعلم كيفية إعداد النسخ الاحتياطي التلقائي لمنصة Discourse الخاصة بك.

يغطي هذا الدليل تكوين النسخ الاحتياطي التلقائي، وتخزينها على الخوادم المحلية أو التخزين المتوافق مع S3، وإدارة خيارات الاحتفاظ بالتخزين مثل Amazon Glacier.

تكوين النسخ الاحتياطي التلقائي

  1. انتقل إلى إعدادات /admin.
  2. حدد قسم Backup (النسخ الاحتياطي).
  3. اضبط backup_frequency على الفاصل الزمني المطلوب بالأيام. القيمة الافتراضية هي 7 (أسبوعيًا). اضبطها على 1 للنسخ الاحتياطي اليومي، أو 0 لتعطيل النسخ الاحتياطي التلقائي. الحد الأقصى هو 30.

backup_frequencybackup_frequency100%75%50%

إعدادات النسخ الاحتياطي الإضافية

  • backup_time_of_day — وقت اليوم (بالتوقيت العالمي المنسق UTC) الذي تعمل فيه النسخ الاحتياطية. الافتراضي: 3:30.
  • backup_with_uploads — تضمين الملفات المحملة في النسخ الاحتياطية المجدولة. الافتراضي: ممكّن. سيؤدي تعطيل هذا إلى نسخ قاعدة البيانات احتياطيًا فقط.
  • maximum_backups — الحد الأقصى لعدد النسخ الاحتياطية التي سيتم الاحتفاظ بها. يتم حذف النسخ الاحتياطية الأقدم تلقائيًا. الافتراضي: 5.
  • remove_older_backups — إزالة النسخ الاحتياطية الأقدم من العدد المحدد من الأيام. اتركها فارغة لتعطيل هذه الميزة.

تخزين النسخ الاحتياطية على الخادم المحلي

بشكل افتراضي، يتم تخزين النسخ الاحتياطية على الخادم المحلي الخاص بك. بالنسبة للتثبيتات المستضافة ذاتيًا، يمكنك الوصول إليها على /var/discourse/shared/standalone/backups/default.

تخزين النسخ الاحتياطية على تخزين متوافق مع S3

استخدام لوحة الإدارة

  1. أنشئ حاوية S3 (S3 bucket).
  2. اضبط s3_backup_bucket في لوحة الإدارة.
  1. قم بتكوين s3_access_key_id و s3_secret_access_key و s3_region.
  2. اضبط backup_location على “S3”.

image

:warning: تحذير

لم يعد تخزين النسخ الاحتياطية وعمليات التحميل العادية في نفس الحاوية و المجلد مدعومًا و لن يعمل.

يجب استخدام مسار s3_backup_bucket للنسخ الاحتياطية فقط. إذا كنت بحاجة إلى استخدام حاوية تحتوي على ملفات أخرى، فتأكد من توفير بادئة عند تكوين إعداد s3_backup_bucket (مثال: my-awesome-bucket/backups) وتأكد من أن الملفات التي تحمل هذه البادئة خاصة.

من الآن فصاعدًا، سيتم تحميل جميع النسخ الاحتياطية إلى S3 ولن يتم تخزينها محليًا بعد الآن. سيتم استخدام التخزين المحلي فقط للملفات المؤقتة أثناء النسخ الاحتياطي والاستعادة.

انتقل إلى علامة التبويب Backups (النسخ الاحتياطية) في لوحة معلومات المسؤول لتصفح النسخ الاحتياطية – يمكنك تنزيلها في أي وقت لإجراء نسخة احتياطية يدوية خارج الموقع.

استخدام متغيرات البيئة في app.yml

يمكنك أيضًا تكوين نسخ S3 الاحتياطية باستخدام متغيرات البيئة في app.yml. لمزيد من المعلومات، راجع تكوين موفر تخزين كائن متوافق مع S3 لعمليات التحميل

لاحظ أن المقالة المذكورة أعلاه التي تغطي app.yml تغطي إعداد S3 للنسخ الاحتياطي ولـ تحميل الملفات/الصور. إذا كنت تريد فقط استخدام S3 للنسخ الاحتياطي (وليس لتحميل الملفات/الصور)، فيمكنك إغفال المعلمات التالية من تكوين app.yml الخاص بك:

  • DISCOURSE_USE_S3
  • DISCOURSE_S3_CDN_URL
  • DISCOURSE_S3_BUCKET

لست بحاجة أيضًا إلى تكوين خطوة after_assets_precompile في هذه الحالة، ولا تكوين شبكة توصيل محتوى (CDN).

تأكد من تضمين جميع المعلمات الأخرى المطلوبة لموفر التخزين الخاص بك، كما هو مذكور في المقالة. فيما يلي مثال واحد للتكوين ينشط S3 للنسخ الاحتياطي فقط (لـ Scaleway S3):

DISCOURSE_S3_REGION: nl-ams
DISCOURSE_S3_ENDPOINT: https://s3.nl-ams.scw.cloud
DISCOURSE_S3_ACCESS_KEY_ID: my_access_key
DISCOURSE_S3_SECRET_ACCESS_KEY: my_secret_access_key
DISCOURSE_S3_BACKUP_BUCKET: my_bucket/my_folder
DISCOURSE_BACKUP_LOCATION: s3

الأرشفة إلى تخزين بتكلفة أقل

لاحظ أنه على AWS S3، يمكنك أيضًا تمكين قاعدة دورة حياة النقل التلقائي إلى حاوية Glacier للحفاظ على تكاليف النسخ الاحتياطي لـ S3 منخفضة. غالبًا ما يكون لموفري التخزين الآخرين عرض مماثل.

59 إعجابًا

You are able to Archive Backups from your S3 Bucket to Glacier.
It is cheaper, but an Restore attemps more Time.

This Site will Help you to reduce Backup costs.:

11 إعجابًا

Setting this up can be rather confusing. Here’s a simple guide to help you out.

  • Log into your Discourse admin panel
  • Configure daily backups
  • Set maximum backups to 7
  • Log into your Amazon Web Services account
  • Go in the S3 Dashboard
  • Open the bucket containing the backups
  • Click on the properties tab
  • Activate versioning
  • Open the Lifecycle menu
  • Add a rule for the whole bucket
  • Set current version to expire after 15 days
  • Set previous version to
  • Archive to Glacier after 1 days
  • expire after 91 days
  • Save and logout

How it works

Versioning will keep backups automaticly deleted by Discourse. One day after beeing deleted it will be moved to the Glacier storage. After 91 days it will be delete from the Glacier storage.

Warning

Amazon charge you for item stored in Glacier for 90 days even if you delete them before. Make sure your Glacier Lyfecicle keep your file at least 90 days.

11 إعجابًا

I may have missed this, but how to I make sure a bucket for backups is private the proper way? Setting up file and image uploads to S3 doesn’t seem to be described here.

إعجاب واحد (1)

Looks like there is no such option anymore.

UPD: ah, now it’s split into 2 steps of this wizard.

So I guess it should be like this:

إعجابَين (2)

Does S3 backup functionality play nice without IAM access key and secret if using AWS roles assigned to the instance and s3 use iam profile is enabled in the settings menu?

Edit: The answer is YES! Just ensure you have region set appropriately.

إعجاب واحد (1)

واجهتُ هذه المشكلة أيضًا، وقد تم حلها بإضافة سطرين إلى مستند السياسة:

"Resource": [
        "arn:aws:s3:::your-uploads-bucket",
        "arn:aws:s3:::your-uploads-bucket/*",
        "arn:aws:s3:::your-backups-bucket",
        "arn:aws:s3:::your-backups-bucket/*"
      ]

هل يجب إضافة هذا إلى المنشور الأصلي (الذي ليس ويكيًا)؟ أم ربما في المنشور الأصلي لـ https://meta.discourse.org/t/setting-up-file-and-image-uploads-to-s3/7229؟

إعجابَين (2)

هل هناك سبب وجيه لعدم جعل النسخ الاحتياطية اليومية هي الافتراضية؟

إصلاحات مطلوبة من صاحب الموضوع الأصلي

إضافة شيء حول نقل نسخ S3 الاحتياطية إلى Glacier؟
حذف محتوى S3 والربط بـ Configure an S3 compatible object storage provider for uploads

سيكون ذلك مبالغًا فيه ومكلفًا. نفس السبب الذي لا نوصي به بتغيير زيت سيارتك كل 500 ميل؟

هل تقوم بنسخ خوادمك احتياطيًا مرة واحدة أسبوعيًا؟

أعتقد أن تشبيهك بتغيير الزيت كل 500 ميل سيكون إجابة جيدة لسؤال “لماذا لا تحتفظ بـ 30 نسخة احتياطية؟”، لكنه لا يبدو منطقيًا في هذا السياق.

ألا تعتقد أنه إذا كان لديك 5 نسخ احتياطية، فسيكون معظم الناس يفضلون أن تكون النسخ اليومية، بحيث إذا اضطرروا للعودة إلى نسخة احتياطية، فإنهم لا يفقدون أكثر من يوم واحد؟ الوقت الوحيد الذي أتذكر فيه أن نسخة احتياطية أقدم كانت مفيدة هو عندما خرجت الصور من “tombstone”.

إذا كان لديهم مساحة قرص محدودة لدرجة أنهم لا يستطيعون تخزين 5 نسخ احتياطية، فسيبدو من الأفضل أن يتعلموا ذلك خلال 5 أيام بينما لا يزال لديهم بعض الذاكرة لما فعلوه، بدلاً من الانتظار من 4 إلى 5 أسابيع.

إعجاب واحد (1)

نعم، هذا صحيح، بالنسبة لخوادمي المستضافة ذاتيًا.

إذا فضلت إعدادات مختلفة، فلا تتردد في تعديلها من الإعدادات الافتراضية. ما الذي يمنعك من فعل ذلك؟

إعجاب واحد (1)

يا لها من مفاجأة!

أنا أقوم بتنظيم المواضيع مثل هذا. لو تم تغيير الإعدادات الافتراضية، لما كانت هناك حاجة لذلك!

أنا مقتنع بأن الإعدادات الافتراضية لن تتغير، لذا سأستمر. :wink

إعجابَين (2)

مرة واحدة في الأسبوع هي نقطة انطلاق جيدة وافتراض قوي.

إعجاب واحد (1)

واجهتُ نفس المشكلة تمامًا!

أقترح إضافة ملاحظة حول هذا في المنشور الأولي أيضًا!

3 إعجابات

سيكون من الجميل إمكانية استخدامه للتحميل إلى مزود S3 متوافق آخر، مثل تشغيل MinIO.

إذا كنت ترغب في استخدام MinIO، راجع استخدام التخزين الكائني للرفع (S3 والنسخ المشابهة). أما إذا كنت تريد خدمات مختلفة للنسخ الاحتياطي والموارد، فلا توجد خيارات متاحة (رغم وجود طرق لإعداد محفزات لنسخ البيانات من إحدى الدلاء إلى أخرى).

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

إذن فإن الدليل الذي أشرت إليه هو ما تبحث عنه.

إعجاب واحد (1)

هل من الممكن أن تكون التكرارية أكثر من مرة في اليوم؟ أفضل عدم افتراض أي شيء وضبط تردد النسخ الاحتياطي على قيمة عشارية.

إعجاب واحد (1)

إذا كنت ترغب في نسخ احتياطي أكثر تكرارًا، فستحتاج إلى القيام بذلك خارجيًا.

3 إعجابات