التجاوز التلقائي وانتخاب القائد (Patroni وStolon)
استخدم Patroni أو Stolon للتجاوز التلقائي، واضبط النصاب لتجنب انقسام الدماغ
التجاوز التلقائي وانتخاب القائد (Patroni وStolon) درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.
لماذا نؤتمت التحويل عند التعطل؟
التحويل اليدوي عند التعطل بطيء ومعرض للأخطاء. تكتشف الأدوات تعطل الخادم الأساسي وترقي نسخة متماثلة من دون تدخل بشري.
خطوات التحويل عند التعطل
ما الذي يجب أن يحدث:
- اكتشاف تعطل الخادم الأساسي، باستخدام فحوصات الصحة والإجماع
- اختيار النسخة المتماثلة التي تحتوي على أحدث WAL
- ترقيتها باستخدام pg_promote أو pg_ctl promote
- إعادة ضبط النسخ المتماثلة الأخرى لتتبع الخادم الأساسي الجديد
- تحديث توجيه اتصالات التطبيق
خطر الانقسام الدماغي
إذا انقسمت الشبكة، فقد ترقي نسخة متماثلة بينما لا يزال الخادم الأساسي القديم قيد التشغيل. يؤدي وجود خادمين أساسيين إلى كتابات متعارضة ثم تلف البيانات. تجنب ذلك باستخدام النصاب.
Patroni
خدمة Python تستخدم مخزن إعدادات موزعًا خارجيًا (DCS)، وعادةً ما يكون etcd أو Consul أو Zookeeper، لإجراء انتخاب القائد:
# patroni.yml
name: pg1
scope: my_cluster
etcd:
hosts: 10.0.0.10:2379,10.0.0.11:2379,10.0.0.12:2379
postgresql:
data_dir: /var/lib/postgresql/dataكيف يختار Patroni القائد الجديد
يتسابق برنامج Patroni على كل عقدة للاستحواذ على قفل القائد في etcd. ولا يمكن إلا لعقدة واحدة الاحتفاظ به؛ فتصبح تلك العقدة هي الخادم الأساسي، بينما تتبعها العقد الأخرى.
Stolon
بديل مبني باستخدام Go. يستخدم نموذج إجماع مشابهًا، لكن بخصائص تشغيلية مختلفة. ويقسم المسؤوليات بين مكونات sentinel وkeeper وproxy.
repmgr
أداة أخف وزنًا من 2ndQuadrant، وتوفر أتمتة أقل وتحكمًا يدويًا أكبر. وهي مناسبة للإعدادات الأصغر.
التحويل المُدار عند التعطل سحابيًا
تتولى RDS وCloud SQL وAurora التحويل عند التعطل نيابةً عنك. وبذلك تستبدل المرونة ببساطة التشغيل.
توجيه الاتصالات بعد التحويل عند التعطل
تحتاج التطبيقات إلى معرفة الخادم الأساسي الجديد. ومن الخيارات المتاحة:
- تحديث DNS، وهو بطيء بسبب TTL
- عنوان IP عائم تديره أداة التحويل عند التعطل
- طبقة وكيل: HAProxy أو pgbouncer مع برنامج نصي أو نقطة نهاية AWS RDS
النسخ المتماثل المتزامن والتحويل عند التعطل
يضمن الخادم الاحتياطي المتزامن عدم فقدان أي بيانات. اجمعه مع التحويل التلقائي عند التعطل للحصول على أقوى توافر عالٍ.
النصاب
بالنسبة إلى النسخ المتماثل المتزامن، اضبط synchronous_standby_names باستخدام النصاب: يجب أن تؤكد أي نسختين من أصل ثلاث نسخ متماثلة. وهذا يتحمل وجود نسخة متماثلة بطيئة أو متعطلة من دون منع عمليات COMMIT.
synchronous_standby_names = 'ANY 2 (replica1, replica2, replica3)'قراءة ما كُتب للتو
بعد التحويل عند التعطل أو عند وجود تأخر في النسخ المتماثل، قد يكتب التطبيق إلى الخادم الأساسي الجديد ثم يقرأ فورًا بيانات قديمة من نسخة متماثلة. إما أن توجه القراءات التي تلي الكتابة إلى الخادم الأساسي، أو تستخدم تتبع pg_last_wal_replay_lsn.
اختبار التحويل عند التعطل
اختبره قبل أن تحتاج إليه. أوقف الخادم الأساسي في بيئة التجهيز مرة كل شهر. وتدرّب على دليل الإجراءات. إن الضغط الناتج عن التعطل الحقيقي سيئ بما يكفي؛ أما المفاجآت فأسوأ.
مراجعة
يُخرج التحويل التلقائي عند التعطل العامل البشري من المسار الحرج.
- استخدم Patroni أو Stolon في الأنظمة المُدارة ذاتيًا
- استخدم RDS أو Cloud SQL في الأنظمة المُدارة
- احذر الانقسام الدماغي، واستخدم النصاب
- تدرّب على التحويل عند التعطل بانتظام
تحقق سريع
ما المقصود بـ «الانقسام الدماغي» في سياق نسخ PostgreSQL المتماثل؟
تعلم SQL مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 46
- الدروس
- 183
الأسئلة الشائعة
هل درس «التجاوز التلقائي وانتخاب القائد (Patroni وStolon)» مجاني؟
نعم — نص درس «التجاوز التلقائي وانتخاب القائد (Patroni وStolon)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.
ماذا ستتعلم في «التجاوز التلقائي وانتخاب القائد (Patroni وStolon)»؟
استخدم Patroni أو Stolon للتجاوز التلقائي، واضبط النصاب لتجنب انقسام الدماغ تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟
لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «التجاوز التلقائي وانتخاب القائد (Patroni وStolon)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟
نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- النسخ المتماثل المتدفق وWAL
- النسخ المتماثل المنطقي للتقسيم
- التجاوز التلقائي وانتخاب القائد (Patroni وStolon)
- النسخ المتماثلة للقراءة وتوجيه الاتصالات