عند الترقية إلى صورة Docker جديدة، ستُنفَّذ تلقائيًا أي عمليات ترحيل لم تُشغَّل بعد، وقد يستغرق ذلك بعض الوقت حسب حجم بياناتك، ويمكنك معرفة مدى التقدم بمتابعة السجلات. لمزيد من المعلومات، راجع وثائق التسجيل (Logging).
تخزين البيانات
يخزّن كل من Overleaf Community Edition و Server Pro بياناتهما في ثلاثة أماكن منفصلة:- قاعدة بيانات MongoDB: هنا توجد بيانات المستخدمين والمشاريع.
- Redis: يعمل كذاكرة تخزين مؤقت عالية الأداء للبيانات قيد المعالجة، ويخزّن بشكل أساسي المعلومات المتعلقة بتعديلات المشاريع والتعاون.
- نظام ملفات Overleaf: يخزّن ملفات المشاريع غير القابلة للتحرير (بما في ذلك الصور)، ويعمل أيضًا كذاكرة تخزين مؤقت مؤقتة على القرص أثناء ترجمة المشاريع.
قد يكون ذلك
~/sharelatex_data أو ~/overleaf_data، بحسب وقت إعداد نسختك.بالنسبة لملفات المشاريع وبيانات السجل الكامل للمشاريع، ندعم أيضًا واجهات تخزين متوافقة مع S3.
إجراء نسخ احتياطي متسق
هناك ثلاثة مخازن يجب تضمينها عند أخذ نسخة احتياطية متسقة:- MongoDB
- Redis
- بيانات نظام ملفات Overleaf
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
mongo و redis و overleaf.
عند التشغيل كمستخدم root (أو باستخدام sudo)، سيحتفظ tar بمالك الملفات ومجموعتها وأذوناتها، وهو أمر بالغ الأهمية عند استعادة النسخة الاحتياطية.
المجلدات بالتفصيل
للمجلدات التالية تلميحات إضافية:
- (b) تُضمَّن في النسخ الاحتياطية، ويُفضّل ذلك عندما تكون النسخة متوقفة لضمان الاتساق
- (d) يمكن حذفها
- (e) ملفات مؤقتة، يمكن حذفها عندما تكون النسخة متوقفة
~/mongo_data(b)- مجلد بيانات mongodb
~/redis_data(b)- مجلد بيانات قاعدة redis
~/overleaf_data- bin
- synctex (d)
- غير مستخدم في أحدث إصدار، إذ كان يُستخدم سابقًا ملف synctex تنفيذي مخصص (يُستخدم synctex لربط المصدر بين ملفات .tex وملف pdf)
- synctex (d)
- data
- cache (e)
- ذاكرة تخزين مؤقت للملفات الثنائية الخاصة بعمليات الترجمة
- compiles (e)
- هنا تجري ترجمة latex
- db.sqlite (d)
- غير مستخدم في أحدث إصدار، كان يخزّن سابقًا تفاصيل ذاكرة التخزين المؤقت لـ clsi (نُقلت إما إلى خرائط بسيطة في الذاكرة أو أصبحنا نفحص القرص)
- db.sqlite-wal (d)
- غير مستخدم في أحدث إصدار، راجع db.sqlite
- output (e)
- تخزين مخرجات ترجمة latex لتقديمها إلى العميل
- template_files (b)
- معاينات الصور لنظام القوالب (Server Pro فقط)
- user_files (b)
- الملفات الثنائية للمشاريع
- history (b)
- ملفات السجل الكامل للمشاريع
- cache (e)
- tmp
- dumpFolder (e)
- ملفات مؤقتة ناتجة عن معالجة ملفات zip
- uploads (e)
- تخزين مؤقت لعمليات رفع الملفات (رفع ملف ثنائي/مشروع جديد من zip)
- projectHistories (e)
- ملفات مؤقتة لعمليات ترحيل السجل الكامل للمشاريع
- dumpFolder (e)
- bin

