MongoDB النسخ المتماثل: كيفية الإنشاء MongoDB مجموعة النسخ المتماثلة
⚡ ملخص ذكي
MongoDB تضمن عملية النسخ المتماثل الاحتفاظ ببيانات متطابقة على أكثر من جهاز MongoDB الخادم، لحمايته من الأعطال وتمكين موازنة الأحمال. مُجمّع MongoDB تشكل النسخ المتماثلة مجموعة نسخ متماثلة مع نسخة أساسية واحدة تقبل عمليات الكتابة وأعضاء ثانوية تتعامل مع عمليات القراءة والتحويل التلقائي في حالة الفشل.
ما هي تفاصيل MongoDB تكرار؟
يُشار إلى عملية النسخ بأنها عملية ضمان توفر نفس البيانات على أكثر من جهاز واحد MongoDB الخادم. هذا مطلوب أحيانًا لغرض زيادة توافر البيانات.
لأنه إذا كان الرئيسي الخاص بك MongoDB يتعطل الخادم لأي سبب من الأسباب، ولن يكون هناك إمكانية الوصول إلى البيانات. ولكن إذا قمت بنسخ البيانات إلى خادم آخر على فترات زمنية منتظمة، فستتمكن من الوصول إلى البيانات من خادم آخر حتى في حالة فشل الخادم الأساسي.
الغرض الآخر من النسخ المتماثل هو إمكانية موازنة التحميل. إذا كان هناك العديد من المستخدمين المتصلين بالنظام، فبدلاً من اتصال الجميع بنظام واحد، يمكن للمستخدمين الاتصال بخوادم متعددة بحيث يكون هناك توزيع متساوٍ للتحميل.
In MongoDB، مضاعف MongoDB تُجمّع الخوادم في مجموعات تُسمى مجموعات النسخ المتماثلة. تحتوي كل مجموعة نسخ متماثلة على خادم رئيسي يستقبل جميع عمليات الكتابة من العملاء. أما جميع النسخ الأخرى التي تُضاف إلى المجموعة بعد ذلك فتُسمى النسخ الثانوية، والتي تُستخدم بشكل أساسي لجميع عمليات القراءة.
كيفية إنشاء نسخة متماثلة في MongoDB إضافة العضو الأول باستخدام rs.initiate()
كما ذكرنا في القسم السابق، لتمكين النسخ المتماثل، نحتاج أولاً إلى إنشاء مجموعة متماثلة من MongoDB الحالات.
لنفترض في مثالنا أن لدينا ثلاثة خوادم تُسمى ServerA وServerB وServerC. في هذا التكوين، سيكون ServerA هو الخادم الرئيسي، بينما سيكون ServerB وServerC خادمين ثانويين. ستوضح لقطة الشاشة أدناه ذلك بشكل أفضل.
فيما يلي الخطوات التي يجب اتباعها لإنشاء MongoDB مجموعة النسخ المتماثلة مع إضافة العضو الأول إلى المجموعة.
الخطوة 1) تأكد من إضافة جميع مثيلات mongod.exe
تأكد من تثبيت جميع نسخ mongod.exe التي ستُضاف إلى مجموعة النسخ المتماثلة على خوادم مختلفة. هذا لضمان أنه حتى في حالة تعطل أحد الخوادم، ستظل الخوادم الأخرى متاحة، وبالتالي ستظل نسخ mongod.exe الأخرى متاحة. MongoDB سوف تكون متاحة.
الخطوة الثانية) تتصل جميع مثيلات mongo.exe ببعضها البعض
تأكد من أن جميع مثيلات mongo.exe يمكنها الاتصال ببعضها البعض. من ServerA، قم بإصدار الأمرين أدناه.
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
وبالمثل، افعل نفس الشيء مع الخوادم المتبقية.
الخطوة 3) ابدأ تشغيل أول نسخة من mongod.exe
ابدأ تشغيل أول نسخة من mongod.exe باستخدام خيار replSet. يوفر هذا الخيار مجموعةping لجميع الخوادم التي ستكون جزءًا من مجموعة النسخ المتماثلة هذه.
mongo --replSet "Replica1"
حيث "Replica1" هو اسم مجموعة النسخ المتماثلة الخاصة بك. يمكنك اختيار أي اسم ذي معنى لاسم مجموعة النسخ المتماثلة الخاصة بك.
الخطوة 4) تتم إضافة الخادم الأول إلى مجموعة النسخ المتماثلة
الآن بعد إضافة الخادم الأول إلى مجموعة النسخ المتماثلة، فإن الخطوة التالية هي بدء تشغيل مجموعة النسخ المتماثلة عن طريق إصدار الأمر التالي rs.initiate().
الخطوة 5) التحقق من مجموعة النسخ المتماثلة
تحقق من مجموعة النسخ المتماثلة عن طريق إصدار الأمر rs.conf() للتأكد من إعداد مجموعة النسخ المتماثلة بشكل صحيح.
مجموعة النسخ المتماثلة: إضافة ثانوية باستخدام rs.add()
يمكن إضافة الخوادم الثانوية إلى مجموعة النسخ المتماثلة فقط باستخدام الأمر rs.add. يأخذ هذا الأمر اسم الخوادم الثانوية ويضيف الخوادم إلى مجموعة النسخ المتماثل.
الخطوة 1) لنفترض أن لديك الخادم A والخادم B والخادم C، والتي يجب أن تكون جزءًا من مجموعة النسخ المتماثلة الخاصة بك، ويتم تعريف الخادم A على أنه الخادم الأساسي في مجموعة النسخ المتماثلة.
لإضافة الخادمين ServerB و ServerC إلى مجموعة النسخ المتماثلة، قم بتنفيذ الأوامر التالية:
rs.add("ServerB") rs.add("ServerC")
مجموعة النسخ المتماثلة: إعادة التكوين أو الإزالة باستخدام rs.remove()
لإزالة خادم من مجموعة التكوين، نحتاج إلى استخدام الأمر "rs.remove".
الخطوة 1) قم أولاً بإيقاف تشغيل الخادم الذي تريد إزالته. يمكنك القيام بذلك عن طريق تنفيذ الأمر db.shutdownServer من واجهة سطر أوامر MongoDB.
الخطوة 2) الاتصال بالخادم الرئيسي.
الخطوة 3) استخدم الأمر rs.remove لإزالة الخادم المطلوب من مجموعة النسخ المتماثلة. على سبيل المثال، إذا كان لديك مجموعة نسخ متماثلة تحتوي على الخوادم ServerA وServerB وServerC، وتريد إزالة الخادم ServerC منها، فأصدر الأمر التالي:
rs.remove("ServerC")
استكشاف أخطاء مجموعات النسخ المتماثلة وإصلاحها
فيما يلي نفس الطرق التي يمكن من خلالها استكشاف الأخطاء وإصلاحها عند مواجهة مشكلات في استخدام مجموعات النسخ المتماثلة.
- تأكد من إمكانية اتصال جميع مثيلات mongo.exe ببعضها البعض. لنفترض أن لديك 3 خوادم تُسمى ServerA وServerB وServerC. من ServerA، نفّذ الأمرَين التاليَين:
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
- نفّذ الأمر rs.status. يُظهر هذا الأمر حالة مجموعة النسخ المتماثلة. افتراضيًا، يرسل كل عضو رسائل إلى الأعضاء الآخرين تُسمى رسائل "نبض القلب"، والتي تُشير إلى أن الخادم يعمل بشكل سليم. يُظهر الأمر "status" حالة هذه الرسائل، ويُبين ما إذا كانت هناك أي مشاكل في أي من أعضاء مجموعة النسخ المتماثلة.
- تحقق من حجم ملف Oplog. ملف Oplog عبارة عن مجموعة في MongoDB الذي يخزن تاريخ عمليات الكتابة التي تم إجراؤها على MongoDB قاعدة البيانات. MongoDB ثم يستخدم Oplog هذا لنسخ عمليات الكتابة إلى الأعضاء الآخرين في مجموعة النسخ المتماثلة. للتحقق من Oplog، اتصل بمثيل العضو المطلوب وقم بتشغيل الأمر rs.printReplicationInfo. سيُظهر هذا الأمر حجم السجل والمدة التي يمكنه الاحتفاظ فيها بالمعاملات في ملف السجل الخاص به قبل أن يصبح ممتلئًا.


