ابدأ الآن

كيف تنسخ حاوية Docker لـNeo4j احتياطيًا (2026)

يحتاج Neo4j تفريغًا متسقًا قبل أن يلمس restic. ينفّذ Dockstash الأمر `neo4j-admin database dump neo4j --to-path=/backup` داخل الحاوية ويلتقط المخرجات ويخزنها مشفّرة خارجيًا — ولا ينسخ /data حيًا أبدًا، لأن ينتج neo4j-admin dump (أو النسخ المتصل في طبعة Enterprise) لقطة مخزن متسقة، لأن مخزن المخطط وسجلات المعاملات يُكتبان باستمرار.

الاكتشاف

ما يكتشفه Dockstash

متغيرات البيئة المكتشفةNEO4J_AUTH, NEO4J_dbms_default__database, NEO4J_PLUGINS
المنفذ الافتراضي7687
مسارات البيانات الحية (لا تُنسخ حية أبدًا)/data, /data/databases, /data/transactions
أمثلة الصورneo4j:5, neo4j:5-community, neo4j:5-enterprise, neo4j
خطوة بخطوة

انسخ Neo4j مع Dockstash خطوة بخطوة

  1. أنشئ حساب Dockstash وافتح لوحة التحكم

    سجّل مجانًا على app.dockstash.com/register. يسألك معالج الإعداد لمرة واحدة عن خادم التخزين VPS (الجهاز الذي سيحتفظ بالنسخ الاحتياطية المشفّرة) ويولّد كلمة مرور تشفير — احفظها فورًا في مدير كلمات مرور، فهي تُعرض مرة واحدة فقط.

  2. أضف مشروع Docker الذي يشغّل Neo4j

    في شاشة Projects يكتشف Dockstash تلقائيًا كل مجلد مشروع Compose على الخادم (افتراضيًا تحت /var/www). اختر المشروع الذي يحتوي خدمة Neo4j. لم يُنسخ شيء بعد — أنت فقط تخبر Dockstash أين يقيم المشروع.

  3. تحقق من اكتشاف Neo4j

    افتح المشروع وتبويب Plan. يقرأ Dockstash ملف docker-compose.yml ويتعرف على صورة neo4j ويسجّل الحاوية المحلولة والمتغيرات المكتشفة (NEO4J_AUTH وNEO4J_PLUGINS). فعّل أو عطّل الملفات والقواعد وإعدادات الوكيل قبل الحفظ.

  4. افهم كيف يعمل تفريغ Neo4j

    Neo4j هو المحرك الوحيد الذي تهم فيه الطبعة. تدعم Enterprise نسخًا ساخنة متصلة عبر neo4j-admin database backup والقاعدة تخدم. أما Community فيتطلب قاعدة موقوفة لأمر neo4j-admin database dump — النمط الآمن: إيقاف قصير مجدول في أهدأ ساعة أو تفريغ نسخة ثانوية. يلتقط Dockstash أثر التفريغ الناتج، وليس دليل /data الحي أبدًا.

  5. أكّد وجهة التخزين

    تُخزَّن النسخ كلقطات restic مشفّرة على خادم التخزين VPS الخاص بك عبر SSH. إن أكملت معالج الإعداد فهي مهيّأة بالفعل؛ ويمكنك تغيير المضيف والمستخدم والمنفذ ومفتاح SSH في أي وقت من Settings → Storage.

  6. اضبط جدول النسخ الاحتياطي

    في تبويب Schedule اختر يوميًا أو أسبوعيًا أو cron مخصصًا (يُتحقق أثناء الكتابة). لـNeo4j بطبعة Community جدوِل النسخ في أهدأ ساعة لتكون نافذة التفريغ القصيرة بلا ألم. أضف prune أسبوعيًا مع سياسة الاحتفاظ.

  7. شغّل أول نسخة احتياطية الآن

    انقر Backup Now. يلتقط Dockstash تفريغ المخطط وملفات المشروع ويدفق كل شيء إلى restic — تابع المخرجات سطرًا سطرًا في لوحة السجلات.

  8. تأكد من وجود اللقطة

    عند انتهاء التشغيل تعرض بطاقة المشروع وقت آخر نسخة وعدد اللقطات وحجم المستودع. افتح شاشة Snapshots وسترى نقطة الاستعادة في الخط الزمني — هذا دليلك على وصول النسخة إلى موقعها الخارجي.

الأوامر

أمر التفريغ

neo4j-admin database dump neo4j --to-path=/backup

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

neo4j-admin database load neo4j --from-path=/backup --overwrite-destination=true

ينتج neo4j-admin dump (أو النسخ المتصل في طبعة Enterprise) لقطة مخزن متسقة، لأن مخزن المخطط وسجلات المعاملات يُكتبان باستمرار.

الاستعادة والتحقق

استعد نسخة Neo4j وأثبت أنها تعمل

نسخة Neo4j لا تصبح حقيقية إلا بعد إعادة تحميلها في مخطط قابل للاستعلام. استعادات Dockstash لا تكتب فوق القاعدة الحية افتراضيًا — إلى موقع جديد أولًا، تحميل في نسخة تجريبية، ثم ترقية واعية.

  1. اختر نقطة استعادة

    افتح Snapshots واختر المشروع وتصفح الخط الزمني. كل صف يحوي أثر تفريغ neo4j-admin متسقًا مع ملفات المشروع من التشغيل نفسه.

  2. استعد إلى موقع جديد

    انقر Restore وأبقِ الوضع الافتراضي «Restore to new location». اكتب اسم المشروع للتأكيد — إجراء متعمّد بتأكيد مكتوب. يهبط التفريغ والملفات في المسار الهدف الذي تختاره دون المساس بالمشروع الحي.

  3. حمّل المخطط المستعاد وتحقق منه

    شغّل حاوية Neo4j تجريبية (الصورة والإضافات نفسها كالإنتاج)، حمّل التفريغ بـneo4j-admin database load على الوجهة الموقوفة، أقلع ثم افحص ببضع استعلامات Cypher — عدّ العقد والعلاقات على تسمياتك الأساسية أسرع اختبار.

  4. رقِّ النتيجة عند الاقتناع

    بعد التحقق من البيانات المستعادة وجّه تطبيقك إليها (أو أعد الاستعادة بوضع «Overwrite existing» — موافقة صريحة). الأفضل: دع تدريب الاستعادة الأسبوعي ينتج هذا الدليل تلقائيًا كي لا تكون الاستعادة الحقيقية أول بروفة لك.

المطبات

مطبات يجب تجنبها

  • على طبعة Community يتطلب `neo4j-admin database dump` قاعدة موقوفة — التفريغ الساخن غير مدعوم ونسخ /data حيًا غير متسق.
  • تدعم طبعة Enterprise نسخًا ساخنة متصلة عبر `neo4j-admin database backup`؛ وCommunity يجدول إيقافًا قصيرًا أو يفرّغ ثانوية.
  • منفذ Bolt (7687) للعملاء؛ النسخ يجري عبر neo4j-admin داخل الحاوية لا عبر Bolt.
استكشاف الأخطاء

مشكلات شائعة في نسخ Neo4j

العرض
تفشل خطوة التفريغ على Community برسالة «database is in use».
السبب
يتطلب neo4j-admin database dump قاعدة موقوفة على Community؛ التفريغ الساخن غير مدعوم.
العلاج
جدوِل النسخ في ساعة هادئة بإيقاف قصير، أو فرّغ نسخة ثانوية، أو انتقل إلى Enterprise ذات النسخ الساخنة عبر neo4j-admin database backup.
العرض
القاعدة المستعادة تقلع لكن استعلامات APOC أو GDS تفشل.
السبب
الإضافات جزء من الصورة والإعداد لا من التفريغ — صورة الوجهة لا تحملها.
العلاج
استعد إلى صورة بها NEO4J_PLUGINS نفسها (APOC وGDS) قبل تحميل التفريغ ثم أعد الإجراءات الفاشلة.
العرض
يرفض neo4j-admin database load الكتابة فوق الوجهة.
السبب
لا يستبدل أمر load قاعدة قائمة دون توجيه صريح ويجب أن تكون الوجهة موقوفة.
العلاج
أوقف قاعدة الوجهة ومرّر --overwrite-destination=true (كما يفعل أمر الاستعادة الموثق تمامًا) ثم أقلع Neo4j.
العرض
النسخ أكبر بكثير مما يوحي به حجم المخطط.
السبب
يتضمن التفريغ المخزن كاملًا؛ وتقلّب سجلات المعاملات بين التفريغين يقلل أيضًا إزالة تكرار restic.
العلاج
أبقِ التفريغات على جدول يومي ودع prune مع الاحتفاظ يشذّبان التاريخ؛ وراقب اتجاه الحجم على بطاقة المشروع للتأكد من عمل الاحتفاظ.

أنجزه بنقرة واحدة مع Dockstash

ينفّذ Dockstash التفريغ أعلاه بالضبط ويسلّمه إلى restic خارجيًا ويختبر الاستعادة بتدريب تلقائيًا — بلا سكربت تصونه.

آخر تحديث: July 2026

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

هل يمكن نسخ Neo4j دون إيقافه؟

على Enterprise نعم — استخدم `neo4j-admin database backup` لنسخة ساخنة متصلة. على Community يحتاج أمر `database dump` قاعدة موقوفة، فيجدول Dockstash إيقافًا قصيرًا أو يفرّغ نسخة مطابقة.

لماذا لا ننسخ دليل /data/databases؟

مخزن المخطط وسجلات المعاملات يُكتبان باستمرار. النسخة الحية غير متسقة وقد لا تُحمَّل. ينتج neo4j-admin dump/backup أثرًا متسقًا قابلًا للاستعادة.

كيف أستعيد تفريغ Neo4j؟

استخدم `neo4j-admin database load ... --overwrite-destination=true` على وجهة موقوفة ثم أقلع Neo4j. يحمّل Dockstash أولًا في قاعدة staging قبل أي كتابة فوقية.

هل تشمل النسخة الإضافات المثبتة؟

لا — الإضافات (APOC وGDS) جزء من الصورة/الإعداد لا من تفريغ القاعدة. تأكد أن صورة الوجهة بها الإضافات نفسها قبل التحميل.

كم مرة يجب نسخ Neo4j؟

اليومي هو العملي — اختر أهدأ ساعة إن كنت على Community وتحتاج نافذة الإيقاف القصيرة. Free يدوي فقط؛ Pro حتى الساعي وBusiness أي cron.

أين تعيش النسخ الاحتياطية فعليًا؟

على خادم التخزين VPS الخاص بك، كلقطات restic مشفّرة تُدفع عبر SSH. لا يحتفظ Dockstash ببياناتك أبدًا على سحابة طرف ثالث — أنت توجّهه إلى جهاز تتحكم فيه، والمستودع مشفّر بكلمة مرور لا يملكها سواك.

كيف أعرف أن النسخة قابلة للاستعادة دون استعادة يدوية؟

جدوِل تدريب استعادة. يستعيد Dockstash أحدث لقطة إلى مساحة عمل معزولة، ويقارن كل ملف بايتًا ببايت مع المصدر، ويتحقق من التفريغ المستعاد — ثم يختم المشروع بشارة نجاح/فشل. تدريب أسبوعي يعني دليلًا طازجًا دائمًا.