البحث في SafeKit

التوفر العالي لـ PostgreSQL مع SafeKit: تثبيت وحدة postgresql.safe لتجاوز الفشل

دليل التثبيت السريع عالي التوفر لـ PostgreSQL

يشرح هذا الدليل كيفية إعداد كتلة المرآة لـ PostgreSQL باستخدام SafeKit، مما يضمن تجاوز الفشل التلقائي والنسخ المتماثل المتزامن دون الحاجة إلى تخزين مشترك.

للمساعدة، يمكنك استخدام SafeKit AI 🤖.

1. نظرة عامة

  • الهندسة المعمارية: يستخدم نظام ثنائي العقدة (الابتدائي / الثانوي).
  • حماية البيانات: ينفذ النسخ المتماثل المتزامن في الوقت الحقيقي لـ فقدان البيانات صفر (RPO=0).

2. التثبيت

  • البرمجيات: قم بتثبيت محرك SafeKit على كلا الخادمين.
  • الوحدة: قم بتنزيل التكوين المسبق postgresql.safe.safe وحدة التطبيق.

3. التكوين

  • وحدة تحكم الويب: قم بتكوين المجلدات المحددة التي تحتوي على ملفات PostgreSQL.
  • المراقبة: ابدأ في مراقبة وحماية تطبيق PostgreSQL.

حدود توفر SafeKit العالي

الحد / المتطلبالسبب والتأثيرالبديل الموصى به
حجم النسخ المتماثل: بضع تيرابايتوقت إعادة المزامنة بعد حدوث عطل (الخطوة 3) :
• شبكة 1 جيجابت/ثانية ≈ 3 ساعات / تيرابايت
• شبكة 10 جيجابت/ثانية ≈ 1 ساعة / تيرابايت (اعتماداً على أداء كتابة القرص)
• استخدام تخزين خارجي مشترَك (أكثر تكلفة وأكثر تعقيداً).
عدد الملفات: < 1,000,000 ملف• أداء وقت إعادة المزامنة بعد حدوث عطل (الخطوة 3).
• الوقت اللازم للتحقق من كل ملف بين العقدتين.
• وضع الملفات الكثيرة المراد نسخها بشكل متماثل في قرص صلب افتراضي / جهاز افتراضي.
• سيتم نسخ الملفات التي تمثل القرص الصلب الافتراضي / الجهاز الافتراضي وإعادة مزامنتها فقط في هذه الحالة.
سعة التبديل عند الأعطال: ≤ 32 جهاز افتراضي (VM)• يتم تشغيل كل جهاز افتراضي في وحدة مرآة مستقلة.
• الحد الأقصى هو 32 وحدة مرآة تعمل على نفس المجموع (Cluster).
• استخدام تخزين خارجي مشترَك وحل آخر لتجميع الأجهزة الافتراضية (أكثر تكلفة وأكثر تعقيداً).
هندسة الشبكة: شبكة LAN/VLAN بين المواقع البعيدة• التبديل التلقائي لـ عنوان IP الافتراضي مع عقدتين في نفس الشبكة الفرعية.
• عرض نطاق ترددي جيد لإعادة المزامنة (الخطوة 3).
• زمن انتقال منخفض لـ النسخ المتماثل المتزامن: عادةً < 5 مللي ثانية RTT؛ يجب التحقق من القيم الأعلى مقابل معدل كتابة التطبيق.
• استخدام موازن تحميل لعنوان IP الافتراضي إذا كانت العقدتان في شبكتين فرعيتين مختلفتين (مدعوم بواسطة SafeKit، وخصوصاً في السحابة).
• استخدام حلول النسخ الاحتياطي مع النسخ المتماثل غير المتزامن للشبكات ذات زمن الانتقال العالي.

نظرة عامة على حل SafeKit/PostgreSQL

الحل موصوف هنا: 💡أبسط توفر عالي لـ PostgreSQL: النسخ المتماثل المتزامن للعقدتين وتجاوز الفشل.

تثبيت حل SafeKit / PostgreSQL على نظامي التشغيل Windows وLinux (postgresql.safe)

المتطلبات الأساسية

  • أنت بحاجة إلى تثبيت PostgreSQL على عقدتين (أجهزة افتراضية أو خوادم فعلية).

تثبيت الحزمة على Windows

  • قم بتنزيل وتثبيت الإصدار المجاني من SafeKit على عقدتين Windows.
    ملاحظة: يتضمن الإصدار المجاني كافة ميزات SafeKit. في نهاية النسخة التجريبية، يمكنك تنشيط مفاتيح الترخيص الدائمة دون إلغاء تثبيت الحزمة.
  • عند الانتهاء من تثبيت الحزمة، حدد Set console credentials and firewall rules now وقم بتكوين كلمة مرور لل admin مستخدم وحدة التحكم SafeKit.
    قم بتعيين نفس كلمة المرور على كافة العقد.
  • استبعاد من عمليات فحص مكافحة الفيروسات C:/safekit/ (دليل التثبيت الافتراضي) و كافة المجلدات المنسوخة الذي ستقوم بتحديده.
    قد تواجه برامج مكافحة الفيروسات تحديات في الكشف عن SafeKit نظرًا لتكاملها الوثيق مع نظام التشغيل وآليات IP الافتراضية والنسخ المتماثل في الوقت الفعلي وإعادة تشغيل الخدمات المهمة.

تحميل SafeKit (Windows) >

تركيب الوحدة على Windows

  • قم بتنزيل الوحدة النمطية postgresql.safe. الوحدة مجانية. أنه يحتوي على ملفات userconfig.xml والبرامج النصية لإعادة التشغيل.
  • ضع postgresql.safe تحت C:/safekit/Application_Modules/generic.

تحميل postgresql.safe (Windows) >

تثبيت الحزمة على Linux

  • قم بتثبيت الإصدار المجاني من SafeKit على عقدتين Linux. ملاحظة: تتضمن النسخة التجريبية المجانية جميع ميزات SafeKit. في نهاية النسخة التجريبية، يمكنك تنشيط مفاتيح الترخيص الدائمة دون إلغاء تثبيت الحزمة.
  • بعد تحميل الحزمة safekit_xx.bin قم بتنفيذها لاستخراج rpm وسكربت safekitinstall ثم قم بتنفيذ الأمر safekitinstall script
  • الإجابة نعم إلى التكوين التلقائي لجدار الحماية
  • قم بتعيين كلمة المرور لوحدة تحكم الويب والمستخدم الافتراضي admin. قم بتعيين نفس كلمة المرور على كافة العقد.

تحميل SafeKit (Linux) >

تركيب الوحدة على Linux

  • قم بتنزيل الوحدة النمطية postgresql.safe.
    الوحدة مجانية. أنه يحتوي على ملفات userconfig.xml والبرامج النصية لإعادة التشغيل.
  • ضع postgresql.safe تحت /opt/safekit/Application_Modules/generic/.

تنزيل postgresql.safe (Linux) >

تكوين حل SafeKit / PostgreSQL خطوة بخطوة

المتطلبات الأساسية

  • تم تثبيت تطبيق PostgreSQL على عقدتين.
  • يقتصر إجمالي البيانات المنسوخة على بضعة تيرابايت - وبعد ذلك، يصبح وقت إعادة المزامنة كبيرًا.
  • الحد الأدنى من الاتصال البيني 1 جيجابت/ثانية بين العقد (يوصى بسرعة 10 جيجابت/ثانية لإعادة المزامنة بشكل أسرع).
  • يتطلب تجاوز فشل IP كلا العقدتين على نفس LAN أو LAN الموسعة (L2) - شبكات L3 الموجهة غير مدعومة (باستثناء 🛠️ موازن التحميل السحابي).

1. قم بتشغيل وحدة التحكم SafeKit

  • قم بتشغيل وحدة تحكم الويب في المتصفح على عقدة نظام مجموعة واحدة عن طريق الاتصال بـ http://localhost:9010.
  • أدخل admin كاسم مستخدم وكلمة المرور المحددة أثناء التثبيت.

يمكنك أيضًا تشغيل وحدة التحكم في المستعرض على محطة عمل خارجية للمجموعة.

⚠️ يتم تكوين SafeKit على كلا العقدتين من متصفح واحد.

ℹ️ لتأمين وحدة تحكم الويب، راجع 🛠️ 11. تأمين خدمة الويب SafeKit في دليل المستخدم.

ابدأ تشغيل وحدة تحكم الويب SafeKit لتكوين مجموعة PostgreSQL

2. تكوين عناوين العقدة

  • أدخل عناوين IP للعقدة، واضغط على Tab key للتحقق من الاتصال وملء أسماء العقد. إذا كان لون node1 أو node2 باللون الأحمر، فتحقق من اتصال المتصفح بكلتا العقدتين وتحقق من جدار الحماية في كلا العقدتين بحثًا عن 🛠️ troubleshooting.
  • ثم انقر فوق Save and apply لحفظ التكوين.
  • تحقق من رسالة Success ✅ على كلا العقدتين.
  • إذا حدث التكوين Failure ❌ على عقدة واحدة، فافتح الأكورديون ▼ لتلك العقدة وراجع الرسائل. لاحظ أنه يمكنك استخدام SafeKit AI 🤖 للمساعدة.

ℹ️ إذا أردت، يمكنك إضافة LAN and nodes جديد (الأول ➕) لإنشاء نبضة قلب ثانية وشبكة النسخ المتماثل المخصصة.

ℹ️ إذا نقرت على Advanced configuration، يتم عرض الملف cluster.xml. تتم تعبئة هذا الملف تلقائيًا بواسطة وحدة التحكم ونشره على العقد.

أدخل العقد الخاصة بمجموعة PostgreSQL

3. حدد وحدة نمطية

  • في New module، انقر فوق وحدة postgresql.safe.

ℹ️ في اللافتة الزرقاء بالأعلى، 🛜 node1 تمثل عقدة اتصال وحدة التحكم. تقوم هذه العقدة بترحيل الطلبات إلى node2 عند الحاجة.

ℹ️ تبحث وحدة التحكم عن xxx.safe في دليل Application_Modules/generic/ على عقدة الاتصال (node1) إذا قمت بوضع وحدة هناك أثناء التثبيت.

اختر الوحدة النمطية لـ PostgreSQL

4. تكوين الوحدة

  • في Module startup at boot، اختر البدء التلقائي للوحدة عند التمهيد دون تأخير.
  • في Macros / SERVICES، أدخل أسماء الخدمة الخاصة بالتطبيق الخاص بك، في ترتيب بدء التشغيل، مفصولة بفواصل. انظر لقطة الشاشة هذه للحصول على مثال مرئي لخدمات Milestone XProtect 🖼️.
  • في Heartbeat networks، يجب أن يكون لديك شبكة نبضات قلب واحدة يتم إجراء النسخ المتماثل عليها. إذا قمت بإضافة LAN خاص في الخطوة 2، فيمكنك تكوين نبضتي قلب مع تدفق النسخ المتماثل على LAN الخاص.
  • في Virtual IP addresses، أدخل عنوان IP الظاهري. عنوان IP الافتراضي هو عنوان IP قياسي في نفس شبكة IP (نفس الشبكة الفرعية) مثل عناوين IP لكلا العقدتين.
    يجب تكوين عملاء التطبيق باستخدام عنوان IP الظاهري (أو اسم DNS المرتبط بعنوان IP الظاهري).
    يتم تبديل عنوان IP الافتراضي تلقائيًا في حالة حدوث فشل.
  • في Replicated directories، قم بتعيين مسارات الدلائل للنسخ المتماثل. تأكد من وجودها في كلا العقدتين وأنها تحتوي على بيانات التطبيق.
    يعد النسخ المتماثل للبيانات والسجل ضروريًا لقاعدة البيانات.
    يمكنك إنشاء أدلة منسوخة إضافية كما هو مطلوب.
    انظر لقطة الشاشة هذه للحصول على مثال مرئي للنسخ المتماثل Milestone XProtect SQL 🖼️.
  • في Checkers، ستتمكن من تكوين أدوات الداما إذا لزم الأمر، مثل مراقبة العملية، أو أدوات الداما المخصصة، أو TCP، أو ping، أو أدوات الداما المنقسمة.
    على سبيل المثال، إذا تم عرض اسم العملية في Monitored processes/services، فسيتم مراقبته بإجراء إعادة التشغيل في حالة الفشل. سيؤدي تكوين اسم عملية خاطئ إلى توقف الوحدة مباشرة بعد بدايتها.

ℹ️ إذا نقرت على Advanced configuration، يتم عرض الملف userconfig.xml. تتم تعبئة هذا الملف تلقائيًا بواسطة وحدة التحكم ويتم نشره على العقد باستخدام البرامج النصية لإعادة التشغيل.

ℹ️ في النشر السحابي، لا تحتاج إلى تكوين عنوان IP افتراضي في SafeKit. تتم إدارة IP الافتراضي على مستوى موازن التحميل السحابي 🛠️ .

ℹ️ عند تطبيق تكوين SafeKit، يتم تعيين startup type للخدمات تلقائيًا على Manual في خدمات Windows. وهذا يضمن عدم بدء تشغيل الخدمات تلقائيًا عند تشغيل النظام، بل يتم تشغيلها فقط عند بدء تشغيل الوحدة نفسها (وينطبق الشيء نفسه على Linux).

أدخل إعدادات الوحدة PostgreSQL

5. تحرير البرامج النصية (اختياري)

  • هذه الخطوة اختيارية ويمكن تخطيها في معظم الحالات، حيث أن البرامج النصية لإعادة التشغيل تم تكوينها مسبقًا لإعادة تشغيل الخدمات المحددة في الخطوة السابقة.
  • لذلك، انقر مباشرة على Next step.
  • يبدأ start_prim.ps1 كافة الخدمات بالترتيب المحدد في القائمة SERVICES، بينما يقوم stop_prim.ps1 بإيقاف كافة الخدمات بالترتيب العكسي.
  • بالإضافة إلى ذلك، يتحقق start_prim.ps1 من بدء تشغيل كل خدمة ويوقف الوحدة إذا فشلت أي خدمة في البدء بشكل صحيح.

أدخل إعدادات الوحدة PostgreSQL

6. تشفير الاتصالات (اختياري)

  • الحفاظ على تشفير الاتصالات بين العقد.

تشفير الاتصالات لوحدة PostgreSQL

7. احفظ وطبق

  • Save and apply التكوين والبرامج النصية على كلا العقدتين.

قم بحفظ وتطبيق تكوين الوحدة النمطية PostgreSQL

8. التحقق من التكوين الناجح

  • تحقق من رسالة Success ✅ على كلا العقدتين وانقر على Monitor modules.
  • إذا حدث التكوين Failure ❌ على عقدة واحدة، فافتح الأكورديون ▼ لتلك العقدة وراجع الرسائل. لاحظ أنه يمكنك استخدام SafeKit AI 🤖 للمساعدة.

⚠️ في Linux، قد تحصل على خطأ في هذه الخطوة إذا كانت الأدلة المنسوخة عبارة عن نقاط تحميل. 🛠️ راجع SK-0030 لحل المشكلة.

تحقق من نجاح تكوين الوحدة النمطية PostgreSQL

9. ابدأ العقدة ببيانات محدثة

  • إذا كانت العقدة 1 تحتوي على أدلة منسوخة محدثة، فحددها ثم ⋯ Force start ◀ As primary.

عند بدء تشغيل العقدة 2، سيتم نسخ جميع البيانات من العقدة 1 إلى العقدة 2.

⚠️ إذا قمت بالاختيار الخاطئ، فإنك تتعرض لخطر مزامنة البيانات القديمة على كلا العقدتين.

⚠️ من المفترض أيضًا أن يتم إيقاف تطبيق PostgreSQL على العقدة 1 بحيث يقوم SafeKit بتثبيت آليات النسخ المتماثل ثم يبدأ التطبيق في البرنامج النصي start_prim.

⚠️ استخدم Start لعمليات البدء اللاحقة: يحتفظ SafeKit بأحدث خادم. يعد بدء تشغيل As primary بمثابة بدء تشغيل خاص في المرة الأولى أو أثناء العمليات الاستثنائية.

ابدأ كعقدة PostgreSQL الأساسية بالبيانات المحدثة

10. انتظر الانتقال إلى ALONE (الأخضر)

  • يجب أن تصل العقدة 1 إلى حالة ALONE (الخضراء)، مما يعني أنه تم تعيين IP الظاهري وأنه تم تنفيذ البرنامج النصي start_prim على العقدة 1.

⚠️ إذا لم يتم الوصول إلى ALONE (الأخضر) أو إذا لم يتم تشغيل التطبيق، قم بتحليل السبب باستخدام سجل module 🖼️ للعقدة 1.

  • انقر فوق أيقونة 🔍 log الخاصة بـ node1 لفتح سجل الوحدة والبحث عن رسائل الخطأ مثل اكتشاف المدقق لخطأ وإيقاف الوحدة.
  • انقر فوق start_prim في السجل: يتم عرض رسائل إخراج البرنامج النصي على اليمين ويمكن اكتشاف الأخطاء مثل بدء تشغيل الخدمة بشكل غير صحيح.
  • استخدم SafeKit AI 🤖 للمساعدة في رسائل السجل.

⚠️ إذا كانت المجموعة في حالة WAIT (red) not uptodate, STOP (red) not uptodate، قم بإيقاف العقدة WAIT و فرض بدايتها كعقدة أساسية 🖼️.

تبدأ العقدة PostgreSQL الأولى كعقدة أساسية وتصبح ALONE

11. ابدأ العقدة 2

  • ⋯ عقدة Start 2 مع القائمة السياقية الخاصة بها.
  • انتظر حالة SECOND (الخضراء).

ℹ️ تظل العقدة 2 في الحالة SECOND (البرتقالية) أثناء إعادة مزامنة الدلائل المنسوخة (نسخ من العقدة 1 إلى العقدة 2).

  • قد يستغرق هذا بعض الوقت حسب حجم الملفات المراد إعادة مزامنتها في الدلائل المنسوخة وعرض النطاق الترددي للشبكة.
  • لمعرفة تقدم النسخة، راجع سجل module 🖼️ وموارد النسخ المتماثل 🖼️ للعقدة 2. استخدم SafeKit AI 🤖 للمساعدة في رسائل السجل.

ابدأ العقدة PostgreSQL 2

12. التحقق من أن المجموعة جاهزة للعمل

  • تأكد من أن المجموعة باللون الأخضر/الأخضر مع تشغيل خدمات PostgreSQL على عقدة PRIM وعدم تشغيلها على عقدة SECOND.

يتم نسخ التغييرات داخل الملفات فقط في الوقت الفعلي في هذه الحالة.

⚠️ يجب تكوين المكونات التي تعد عملاء لخدمات PostgreSQL باستخدام عنوان IP الافتراضي. يمكن إجراء التكوين باستخدام اسم DNS (إذا تم إنشاء اسم DNS وربطه بعنوان IP الظاهري).

العقدة PostgreSQL 2 هي SECOND (أخضر)

13. الاختبار

  • قم بإيقاف عقدة PRIM عن طريق التمرير لأسفل القائمة السياقية والنقر فوق Stop.
  • تحقق من وجود تجاوز فشل في العقدة SECOND والتي يجب أن تصبح ALONE (باللون الأخضر).
  • ومع وحدة التحكم بالإدارة لـ Microsoft (MMC) على Windows أو باستخدام أسطر الأوامر على Linux، تحقق من تجاوز فشل خدمات PostgreSQL (توقفت عند العقدة 1 في البرنامج النصي stop_prim وبدأت عند العقدة 2 في البرنامج النصي start_prim).

⚠️ إذا لم يتم الوصول إلى ALONE (الأخضر) على node2 أو إذا لم يتم تشغيل التطبيق، فتحليل السبب باستخدام سجل module 🖼️ للعقدة 2.

  • انقر فوق أيقونة 🔍 log الخاصة بـ node2 لفتح سجل الوحدة والبحث عن رسائل الخطأ مثل اكتشاف المدقق لخطأ وإيقاف الوحدة.
  • انقر فوق start_prim في السجل: يتم عرض رسائل إخراج البرنامج النصي على اليمين ويمكن اكتشاف الأخطاء مثل بدء تشغيل الخدمة بشكل غير صحيح.
  • استخدم SafeKit AI 🤖 للمساعدة في رسائل السجل.

⚠️

  • إذا كان كل شيء على ما يرام، ابدأ البدء على node1، والذي سيؤدي إلى إعادة مزامنة الدلائل المنسوخة من node2.
  • إذا ساءت الأمور، قم بإيقاف node2 و، وفرض البدء كـ 🖼️ الأساسي لـ node1، والذي سيتم إعادة تشغيله ببياناته السليمة محليًا في وقت التوقف.

ℹ️ يمكنك العثور على مزيد من التفاصيل، إلى جانب مقاطع الفيديو، في التدريب عبر الإنترنت SafeKit.

أوقف وحدة PostgreSQL على خادم PRIM

14. الدعم

  • للحصول على الدعم، خذ ملفين SafeKit Snapshots (ملفين بتنسيق .zip)، ملف واحد لكل عقدة.

ℹ️ مزيد من المعلومات حول الدعم هنا.

التقط لقطات PostgreSQL للحصول على الدعم

عرض حل المرآة SafeKit

فيديو SafeKit: التجميع على مستوى التطبيق (8:47)

في هذا الفيديو، اكتشف كيفية قيام SafeKit بتنفيذ مجموعة HA مرآة دون تعقيد شبكة SAN. بينما يستخدم هذا العرض التوضيحي Microsoft SQL Server، يعمل الحل بشكل مماثل مع قواعد البيانات والتطبيقات الأخرى.

فصول

  1. 🎬 عقدتان مع SQL Server (0:32)
  2. 🎬 قم بتكوين المجموعة ووحدة Mirror.safe (3:58)
  3. 🎬 بدء واختبار النسخ المتماثل لـ SQL، والترحيل، وتجاوز الفشل عند التعطل (4:17)

التنفيذ خطوة بخطوة

🔍 مركز توجيه SafeKit للتوافر العالي (High Availability)

استكشف SafeKit: المميزات، الفيديوهات التقنية، الوثائق، والتجربة المجانية

نوع الموردالوصفرابط مباشر
المميزات الرئيسيةلماذا تختار SafeKit لتحقيق توافر عالي بسيط وبتكلفة اقتصادية؟اكتشف لماذا تختار SafeKit للتوافر العالي
حالات الاستخداماكتشف كيف يضمن SafeKit التوافر العالي للبنية التحتية الحيويةعرض جميع حالات الاستخدام (برامج OEM، خوادم Edge، SCADA، والمزيد)
نموذج النشرحل متكامل للتوافر العالي بدون شبكة تخزين (SANless HA): تجميع البرمجيات دون مشاركة الموارد (Shared-Nothing)عرض حل SafeKit المتكامل SANless HA
استراتيجيات التوافر العاليSafeKit: مقارنة بين التوافر العالي على مستوى البنية التحتية (VM) ومستوى التطبيقاتعرض خيارات SafeKit للتوافر العالي والتكرار: مستوى الجهاز الظاهري مقابل مستوى التطبيق
المواصفات التقنيةالقيود التقنية لتجميع SafeKit (Clustering)عرض قيود SafeKit للتوافر العالي
فيديوهاتSafeKit: فيديوهات توضيحية لتهيئة التوافر العالي وفشل النظام التلقائي (Failover)عرض دروس SafeKit التعليمية لفشل النظام (Failover)
البنية الهندسيةكيف يعمل عنقود المرآة (Mirror Cluster) في SafeKit (النسخ المتماثل في الوقت الفعلي وفشل النظام)عرض SafeKit Mirror Cluster: النسخ المتماثل في الوقت الفعلي وفشل النظام
البنية الهندسيةكيف يعمل عنقود المزرعة (Farm Cluster) في SafeKit (موازنة حمل الشبكة وفشل النظام)عرض SafeKit Farm Cluster: موازنة حمل الشبكة وفشل النظام
المزايا التنافسيةمقارنة: SafeKit مقابل عناقيد التوافر العالي التقليدية (HA Clusters)عرض مقارنة بين SafeKit وعناقيد التوافر العالي التقليدية
الموارد التقنيةSafeKit للتوافر العالي: الوثائق، التنزيلات، والتجربة المجانيةعرض تجربة SafeKit المجانية والوثائق التقنية
حلول معدة مسبقاًمكتبة نماذج تطبيقات SafeKit: حلول توافر عالي جاهزة للاستخدامعرض نماذج تطبيقات SafeKit للتوافر العالي
SafeKit AI Chat SafeKit AI