Skip to main content
نحتاج أحيانًا إلى تغيير مخطط البيانات في قاعدة البيانات مع تطوّر Overleaf، وتُستخدم سكربتات الترحيل لأتمتة هذه العملية. وتكون هذه السكربتات قد شُغّلت أولًا على overleaf.com، وهي أكبر نسخة من Overleaf في العالم، لذا تكون معظم الاحتمالات قد صودفت بالفعل، ومع ذلك لا نقدّم أي ضمانات بشأن بياناتك. يُرجى التأكد من إنشاء نسخة احتياطية متسقة من بياناتك قبل ترقية نسختك.
عند الترقية إلى صورة Docker جديدة، ستُنفَّذ تلقائيًا أي عمليات ترحيل لم تُشغَّل بعد، وقد يستغرق ذلك بعض الوقت حسب حجم بياناتك، ويمكنك معرفة مدى التقدم بمتابعة السجلات. لمزيد من المعلومات، راجع وثائق التسجيل (Logging).

تخزين البيانات

يخزّن كل من Overleaf Community Edition و Server Pro بياناتهما في ثلاثة أماكن منفصلة:
  • قاعدة بيانات MongoDB: هنا توجد بيانات المستخدمين والمشاريع.
  • Redis: يعمل كذاكرة تخزين مؤقت عالية الأداء للبيانات قيد المعالجة، ويخزّن بشكل أساسي المعلومات المتعلقة بتعديلات المشاريع والتعاون.
  • نظام ملفات Overleaf: يخزّن ملفات المشاريع غير القابلة للتحرير (بما في ذلك الصور)، ويعمل أيضًا كذاكرة تخزين مؤقت مؤقتة على القرص أثناء ترجمة المشاريع.
قد يكون ذلك ~/sharelatex_data أو ~/overleaf_data، بحسب وقت إعداد نسختك.
بالنسبة لملفات المشاريع وبيانات السجل الكامل للمشاريع، ندعم أيضًا واجهات تخزين متوافقة مع S3.
راجع قسم المجلدات بالتفصيل لمزيد من المعلومات حول بنية المجلدات على القرص.

إجراء نسخ احتياطي متسق

هناك ثلاثة مخازن يجب تضمينها عند أخذ نسخة احتياطية متسقة:
  • MongoDB
  • Redis
  • بيانات نظام ملفات Overleaf
لإنتاج نسخة احتياطية متسقة، من الإلزامي منع المستخدمين من إنتاج بيانات جديدة أثناء تشغيل عملية النسخ الاحتياطي. لذلك ننصح بجدولة نافذة صيانة لا يتمكن خلالها المستخدمون من الوصول إلى النسخة أو تحرير مشاريعهم. قبل بدء عملية النسخ الاحتياطي، ستحتاج إلى إيقاف نسختك عن العمل. وبدءًا من Server Pro 3.5.0، تقوم عملية الإيقاف تلقائيًا بإغلاق الموقع وفصل المستخدمين. لإيقاف نسختك، ستحتاج إلى تشغيل bin/docker-compose stop sharelatex إذا كنت تستخدم نشرًا عبر Toolkit، أو docker compose stop sharelatex إذا كنت تستخدم Docker Compose. بعد إيقاف الحاوية sharelatex، يمكنك بدء عملية النسخ الاحتياطي. بعد اكتمال عملية النسخ الاحتياطي بنجاح، ستحتاج إلى تشغيل الحاوية sharelatex. للقيام بذلك، شغّل bin/docker-compose start sharelatex إذا كنت تستخدم نشرًا عبر Toolkit، أو docker compose start sharelatex إذا كنت تستخدم Docker Compose.
  • يجب تخزين النسخ الاحتياطية على خادم منفصل عن الخادم الذي تعمل عليه نسخة Overleaf، ويُفضّل أن يكون في موقع مختلف تمامًا.
  • قد يوفّر نسخ قواعد البيانات على عدة نسخ من MongoDB بعض التكرار، لكنه لا يحمي من تلف البيانات.
  • اختبار نسخك الاحتياطية هو أفضل طريقة للتأكد من أنها كاملة وصالحة للعمل.

MongoDB

يأتي MongoDB مع أداة سطر أوامر تُسمى mongodump يمكن استخدامها لإنشاء نسخة احتياطية من بيانات المستخدمين والمشاريع المخزّنة في قاعدة البيانات.

بيانات نظام ملفات Overleaf

بالنسبة لعمليات النشر عبر Toolkit، يُحدَّد المسار الذي تُخزَّن فيه ملفاتك غير القابلة للتحرير في config/overleaf.rc باستخدام متغير البيئة OVERLEAF_DATA_PATH، لكن قد يكون data/sharelatex بحسب وقت إنشاء نسختك. يلزم استخدام أداة مثل rsync لنسخ هذا المجلد بشكل متكرر لضمان إنشاء نسخة احتياطية كاملة.

Redis

يخزّن Redis جلسات المستخدمين وتحديثات المستندات المعلّقة قبل نقلها إلى MongoDB. يُعدّ استمرار Append Only File (AOF) الإعداد الموصى به لاستمرار بيانات Redis. يكون استمرار AOF مفعّلًا افتراضيًا لمستخدمي Toolkit في التثبيتات الجديدة، ويمكن للمستخدمين الحاليين العثور على مزيد من المعلومات حول تفعيل AOF هنا. إذا قررت مواصلة استخدام لقطات RDB إلى جانب استمرار AOF، فيمكنك نسخ ملف RDB إلى موقع آمن كنسخة احتياطية.

ترحيل البيانات بين الخوادم

في أفضل الأحوال، لا تكون لديك أي بيانات ذات قيمة في النسخة الجديدة بعد. فليست لدينا عملية لدمج بيانات النسخ. بافتراض أن النسخة الجديدة لا تحتوي على بيانات بعد، فيما يلي بعض الخطوات التي يمكنك اتباعها. بصورة عامة، ننشئ أرشيف tar لوحدات التخزين mongo و redis و overleaf، وننسخه إلى الخادم الجديد، ثم نفك ضغطه هناك.

Toolkit

Docker Compose

بحسب ملف docker-compose.yml لديك، قد تحتاج إلى تعديل مسارات وحدات التخزين mongo و redis و overleaf.
عند التشغيل كمستخدم root (أو باستخدام sudo)، سيحتفظ tar بمالك الملفات ومجموعتها وأذوناتها، وهو أمر بالغ الأهمية عند استعادة النسخة الاحتياطية.

المجلدات بالتفصيل

للمجلدات التالية تلميحات إضافية:
  • (b) تُضمَّن في النسخ الاحتياطية، ويُفضّل ذلك عندما تكون النسخة متوقفة لضمان الاتساق
  • (d) يمكن حذفها
  • (e) ملفات مؤقتة، يمكن حذفها عندما تكون النسخة متوقفة
  1. ~/mongo_data (b)
    • مجلد بيانات mongodb
  2. ~/redis_data (b)
    • مجلد بيانات قاعدة redis
  3. ~/overleaf_data
    1. bin
      1. synctex (d)
        • غير مستخدم في أحدث إصدار، إذ كان يُستخدم سابقًا ملف synctex تنفيذي مخصص (يُستخدم synctex لربط المصدر بين ملفات ‎.tex وملف pdf)
    2. data
      1. cache (e)
        • ذاكرة تخزين مؤقت للملفات الثنائية الخاصة بعمليات الترجمة
      2. compiles (e)
        • هنا تجري ترجمة latex
      3. db.sqlite (d)
        • غير مستخدم في أحدث إصدار، كان يخزّن سابقًا تفاصيل ذاكرة التخزين المؤقت لـ clsi (نُقلت إما إلى خرائط بسيطة في الذاكرة أو أصبحنا نفحص القرص)
      4. db.sqlite-wal (d)
        • غير مستخدم في أحدث إصدار، راجع db.sqlite
      5. output (e)
        • تخزين مخرجات ترجمة latex لتقديمها إلى العميل
      6. template_files (b)
        • معاينات الصور لنظام القوالب (Server Pro فقط)
      7. user_files (b)
        • الملفات الثنائية للمشاريع
      8. history (b)
        • ملفات السجل الكامل للمشاريع
    3. tmp
      1. dumpFolder (e)
        • ملفات مؤقتة ناتجة عن معالجة ملفات zip
      2. uploads (e)
        • تخزين مؤقت لعمليات رفع الملفات (رفع ملف ثنائي/مشروع جديد من zip)
      3. projectHistories (e)
        • ملفات مؤقتة لعمليات ترحيل السجل الكامل للمشاريع
آخر تعديل في ٥ أكتوبر ٢٠٢٦