العودة إلى المدونة

PostgreSQL على سيرفر VPS في 2026: الضبط والنسخ الاحتياطي والأمان لبيئة الإنتاج

فريق تحرير IM Host3 أكتوبر 20264 دقائق قراءة
PostgreSQL على سيرفر VPS في 2026: الضبط والنسخ الاحتياطي والأمان لبيئة الإنتاج

PostgreSQL هي قاعدة البيانات التي تقف خلف نسبة كبيرة من التطبيقات الحديثة، من منتجات SaaS إلى أنظمة ERP والتحليلات. تعمل جيدًا على الـ VPS، لكن إعداداتها الافتراضية متحفظة عمدًا وتفترض ذاكرة محدودة جدًا. بعض التغييرات في إعدادات الذاكرة والاتصالات والنسخ الاحتياطي والتعرض للشبكة تصنع الفرق بين قاعدة بيانات تعاني وأخرى تستوعب النمو بهدوء. يغطي هذا الدليل هذه التغييرات.

اختيار سيرفر VPS المناسب لـ PostgreSQL

  • الذاكرة أولًا: تكون PostgreSQL في أسرع حالاتها عندما تتسع الذاكرة للبيانات الأكثر استعلامًا. قدّر حجم البيانات العاملة واختر الذاكرة على أساسه.

  • تخزين NVMe: كل عملية Commit تكتب على القرص، والتخزين NVMe منخفض التأخير يحسّن أداء الكتابة وسلوك نقاط التفتيش مباشرة.

  • معالج مخصص: يجب ألا يعتمد أداء الاستعلامات على ما يفعله المستخدمون الآخرون. يمنحك Cloud VPS بمعالج وذاكرة مخصصين بالكامل أداءً ثابتًا يمكن توقعه.

الخطوة 1: اضبط إعدادات الذاكرة

هذه القيم في ملف postgresql.conf نقطة بداية معقولة لسيرفر VPS بذاكرة 8 جيجابايت يشغّل PostgreSQL أساسًا. عدّلها حسب سيرفرك وقِس النتائج.

# Example starting point for a VPS with 8 GB RAM, NVMe storage
shared_buffers = 2GB
effective_cache_size = 6GB
work_mem = 16MB
maintenance_work_mem = 512MB
max_connections = 100
random_page_cost = 1.1
effective_io_concurrency = 200
wal_compression = on
checkpoint_completion_target = 0.9
  • shared_buffers: نحو 25 بالمئة من الذاكرة نقطة بداية شائعة.

  • effective_cache_size: يخبر مخطط الاستعلامات بحجم الذاكرة المتاحة للتخزين المؤقت بما فيها كاش النظام، ولا يحجز ذاكرة فعليًا.

  • work_mem: ذاكرة لكل عملية فرز أو Hash ولكل اتصال، ورفعها كثيرًا مع عدد كبير من الاتصالات قد يستهلك الذاكرة بالكامل.

  • random_page_cost: القيم الأقل تناسب أقراص SSD وNVMe حيث تكون القراءة العشوائية رخيصة.

الخطوة 2: تحكم في الاتصالات بـ Pooler

كل اتصال بـ PostgreSQL عملية مستقلة بذاكرتها الخاصة. التطبيقات التي تفتح مئات الاتصالات، مثل الدوال السحابية أو عدد كبير من عمليات التطبيق، قد تُنهك السيرفر. ضع PgBouncer أمام PostgreSQL بوضع Transaction Pooling، وأبقِ max_connections معتدلًا، ودع الـ Pooler يتعامل مع الدفعات المفاجئة.

الخطوة 3: لا تكشف المنفذ 5432 على الإنترنت أبدًا

اربط PostgreSQL بـ localhost أو بشبكة خاصة، واسمح فقط لسيرفرات التطبيق في pg_hba.conf. وإذا احتاجت أداة خارجية إلى الوصول، فاستخدم نفق SSH أو VPN بدلًا من فتح المنفذ. استخدم مصادقة scram-sha-256 ودورًا مستقلًا لكل تطبيق بأقل الصلاحيات اللازمة.

الخطوة 4: انسخ احتياطيًا على طبقتين

  1. نسخ منطقية عبر pg_dump: بسيطة وقابلة للنقل ومناسبة لاسترجاع قاعدة بيانات أو جدول واحد. نفّذها ليليًا وانقلها خارج السيرفر.

  2. نسخ فيزيائية مع الاسترجاع لنقطة زمنية: أدوات مثل pgBackRest أو WAL-G تأخذ نسخًا أساسية وتؤرشف سجل الكتابة المسبقة باستمرار، لتسترجع حالة قاعدة البيانات في لحظة محددة، مثل ما قبل أمر DELETE نُفّذ بالخطأ.

احفظ النسخ في موقع مختلف عن سيرفر قاعدة البيانات، وشفّرها، وجرّب الاسترجاع بانتظام. على Cloud VPS من IM HOST تُعد النسخة الاحتياطية التلقائية المجانية للسيرفر كل 72 ساعة طبقة إضافية مفيدة، لكن النسخ الخاصة بقاعدة البيانات تبقى ضرورية للاسترجاع المتسق والاسترجاع لنقطة زمنية.

الخطوة 5: حافظ على صحة الـ Vacuum والإحصائيات

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

الخطوة 6: اكتشف الاستعلامات البطيئة

فعّل إضافة pg_stat_statements لترى الاستعلامات الأكثر استهلاكًا للوقت، واضبط log_min_duration_statement لتسجيل أي استعلام أبطأ من 500 مللي ثانية مثلًا. معظم مشكلات الأداء تُحل بفهرس أو بإعادة كتابة الاستعلام، لا بسيرفر أكبر.

الخطوة 7: راقب المؤشرات الصحيحة

  • نسبة الإصابة في الكاش ومعدلات القراءة من القرص.

  • الاتصالات النشطة والخاملة.

  • تأخر النسخ المتماثل إذا كنت تشغّل نسخًا مكررة.

  • نمو مساحة القرص وحجم سجلات WAL.

  • الاستعلامات الطويلة والأقفال.

الخطوة 8: خطط للنمو

عندما لا يعود سيرفر واحد كافيًا، أضف نسخة متماثلة (Streaming Replica) لحركة القراءة والتحويل عند الأعطال، وانقل التحليلات الثقيلة إليها، أو انقل PostgreSQL إلى سيرفر مخصص. وفي قواعد البيانات الضخمة جدًا، يمنح السيرفر المخصص قاعدة البيانات الجهاز كاملًا.

شغّل PostgreSQL على IM HOST

تجمع خطط Cloud VPS من IM HOST بين معالج وذاكرة مخصصين بالكامل وتخزين NVMe وتقنية KVM، مع مواقع في الولايات المتحدة والمملكة المتحدة وبولندا وألمانيا ومصر، لتبقي قاعدة بياناتك قريبة من مستخدميك وضمن النطاق القانوني المناسب.

المزيد من مدونتنا

اكتشف المزيد من الأدلة العملية ورؤى الخدمات من فريق IM Host.

عرض كل المقالات