سيرفر واحد يشغّل نفق VPN وتطبيق ويب وقاعدة بيانات: هذا ترتيب عملي لكثير من الشركات الصغيرة. لكن خطة النسخ الاحتياطي لهذا السيرفر غالباً ما تكون جملة واحدة: «عندنا نسخة يومية». والسؤال الذي يكشف قيمتها: لو تعطل السيرفر الآن، ما الذي ستستعيده، ومن أين، وكم يستغرق ذلك؟
المكوّنات الثلاثة تتغير بسرعات مختلفة وتحتاج طرقاً مختلفة. إعدادات النفق نادراً ما تتغير، وملفات التطبيق تتغير مع كل نشر أو رفع، وقاعدة البيانات تتغير كل ثانية. لذلك نبني هنا خطة بطبقات، تبدأ بسؤال واحد عن الخسارة المقبولة، وتنتهي باختبار استعادة حقيقي.
قبل الأدوات: حدّد رقمين
لا يمكن تصميم نسخ احتياطي دون قرارين تتخذهما إدارة العمل لا الفني وحده:
- الخسارة المقبولة في البيانات (RPO): كم من آخر البيانات يمكنك تحمّل فقدانه؟ إن كان الجواب «لا شيء تقريباً» فالنسخ اليومي لا يكفي.
- زمن العودة المقبول (RTO): كم ساعة يمكن أن تبقى الخدمة متوقفة؟ هذا يحدد هل تكفي نسخة بعيدة بطيئة أم تحتاج سيرفراً جاهزاً.
حدّد الرقمين لكل مكوّن على حدة. قد تتحمل تطبيقاً متوقفاً ساعة، لكن لا تتحمل ضياع يوم كامل من الفواتير.
لكل مكوّن طريقته
| المكوّن | ماذا تنسخ | كيف | التكرار المقترح |
|---|---|---|---|
| VPN | إعدادات النفق والمفاتيح وقواعد الجدار | أرشيف مشفّر | بعد كل تغيير |
| التطبيق | الكود في Git، وملفات الإعداد، والملفات المرفوعة | Git مع نسخ تزايدي للملفات المرفوعة | مع كل نشر، ويومياً للملفات |
| قاعدة البيانات | نسخة متماسكة، وسجلات المعاملات عند الحاجة | pg_dump أو mysqldump أو نسخ مستمر | يومياً على الأقل، وحسب RPO |
| الجهاز الافتراضي كاملاً | النظام والإعدادات وكل ما سبق | مهمة نسخ في Proxmox | يومياً أو أسبوعياً |

قاعدة البيانات: لا تنسخ ملفاتها وهي تعمل
نسخ مجلد البيانات أثناء تشغيل القاعدة قد ينتج نسخة غير متماسكة لا تعمل عند الاستعادة. استعمل أداة القاعدة نفسها. المثال التالي افتراضي، واسم القاعدة appdb:
# PostgreSQL: نسخة بصيغة مضغوطة قابلة للاستعادة الجزئية
pg_dump -Fc -f /backup/appdb-$(date +%F).dump appdb
# MySQL أو MariaDB: نسخة متماسكة لجداول InnoDB بلا قفل طويل
mysqldump --single-transaction appdb | gzip > /backup/appdb-$(date +%F).sql.gz
إن كان RPO أقصر من يوم، فالنسخ الدوري وحده لا يكفي، وتحتاج سجلات المعاملات المستمرة في PostgreSQL أو binlog في MySQL لتعود إلى لحظة قريبة من العطل.
VPN: صغير الحجم وخطير المحتوى
نسخة إعدادات النفق لا تتجاوز ملفات قليلة، لكنها تحوي مفاتيح خاصة. من يحصل عليها يستطيع انتحال سيرفرك، لذلك تُشفَّر قبل أن تغادر السيرفر:
tar -czf - /etc/wireguard | gpg --symmetric --cipher-algo AES256 \
-o /backup/wg-$(date +%F).tar.gz.gpg
واحفظ عبارة فك التشفير في مكان منفصل عن النسخة، فالنسخة التي لا تستطيع فك تشفيرها لا قيمة لها.
مهمة النسخ في Proxmox
إن كانت المكوّنات تعمل في أجهزة أو حاويات على Proxmox، فمهمة نسخ مجدولة تغطي النظام كله. وضع Snapshot يأخذ النسخة والخدمة تعمل، لكنه لا يُغني عن pg_dump إن أردت استعادة جدول واحد.

اختر الموعد بعناية. ذروة شبكات العراق في تجربتنا تكون ظهراً ومن المساء إلى منتصف الليل، وأدنى حمل يكون فجراً، فاجعل المهام الثقيلة في ذلك الوقت، ووزّعها كي لا تعمل كلها في اللحظة نفسها.

أين تحفظ النسخة؟
النسخة الموجودة على قرص السيرفر نفسه تحميك من حذف ملف بالخطأ، لكنها تضيع مع عطل القرص أو اختراق السيرفر. القاعدة المعروفة 3-2-1 بسيطة: ثلاث نسخ من البيانات، على نوعين من التخزين، وواحدة منها خارج المكان الأصلي.
لا تجعل السيرفر الأصلي يملك صلاحية حذف نسخه البعيدة. إن اختُرق السيرفر فالمهاجم يصل إلى كل ما يصل إليه هو. الأفضل أن يسحب سيرفر النسخ البيانات بنفسه، أو أن تكون الكتابة إليه بلا صلاحية حذف.
ولا تنسَ أن زمن الاستعادة يعتمد على العتاد أيضاً، كما هو حال سرعة الخدمة نفسها. زمن الشبكة في العراق بين 70 و150ms وتوليد الصفحة بين 150ms وأكثر من ثانيتين، أي أن المسافة تكلّف عشرات الملّي ثانية والعتاد الضعيف يكلّف آلافاً. اسأل عن المعالج والتخزين لا عن المدينة وحدها، سواء للسيرفر الأساسي أو سيرفر النسخ.
الاختبار هو الخطة الحقيقية
النسخة التي لم تُستعد قط هي افتراض لا نسخة. نفّذ بروفة دورية تتبع هذا المسار:

- أنشئ جهازاً معزولاً لا يصل إلى الإنتاج.
- استعد النسخة بالخطوات المكتوبة فقط، لا من الذاكرة.
- تحقق من البيانات: آخر سجل، وعدد الصفوف في الجداول المهمة، وفتح ملف مرفوع.
- سجّل الزمن الفعلي وقارنه بـRTO، ثم صحّح الوثيقة.
لمن تناسب هذه الخدمة؟
- شركة تجمع خدماتها على سيرفر واحد وتريد خطة تعافٍ واضحة.
- مزوّد إنترنت أو مكتب شبكات يعتمد على نفق الإدارة في عمله اليومي.
- فريق تطوير يدير قواعد بيانات فيها بيانات مالية أو تشغيلية.
أخطاء شائعة
- حفظ النسخ على السيرفر نفسه والاكتفاء بذلك.
- عدم مراقبة المهمة، فتفشل بصمت لأسابيع. فعّل التنبيه عند الفشل.
- نسيان إعدادات التطبيق وملف الأسرار وقواعد الجدار.
- عدم التحقق من امتلاء التخزين قبل أن يوقف النسخ أو الخدمة.
- اعتبار النسخ المتماثل نسخة احتياطية. الحذف الخاطئ يتكرر فوراً على النسخة الأخرى.
أسئلة شائعة
كم نسخة أحتفظ بها؟
يعتمد ذلك على بياناتك وعلى متى تكتشف الخطأ عادة. مزيج من نسخ يومية حديثة وأسبوعية وشهرية أقدم يغطي الأعطال الفورية والأخطاء التي تُكتشف متأخرة.
هل تؤثر النسخة على أداء الخدمة؟
نعم، فهي تقرأ كماً كبيراً من القرص. جدولها فجراً، وراقب عمليات القرص، ووزّع المهام على أوقات مختلفة.
هل تكفي نسخة الجهاز الكاملة وحدها؟
تكفي لاستعادة الجهاز كله، لكنها ثقيلة إن أردت جدولاً واحداً أو ملفاً واحداً. لذلك نجمع بينها وبين نسخ قاعدة البيانات المنطقية.
اجعل نسختك خارج السيرفر
ابدأ بكتابة الجدول أعلاه لخدمتك اليوم، ثم حدد مكان النسخة البعيدة. لمساحة مخصصة للنسخ راجع سيرفرات التخزين، ولتشغيل خدماتك في أجهزة منفصلة تحت إدارتك راجع سيرفرات Proxmox. وللتفاصيل العملية اقرأ دليل مهام النسخ في Proxmox.