MongoDB النسخ المتماثل: كيفية الإنشاء MongoDB مجموعة النسخ المتماثلة

ما هي تفاصيل MongoDB تكرار؟

يشار النسخ المتماثل إلى عملية التأكد من توفر نفس البيانات على أكثر من خادم Mongo DB. وهذا مطلوب في بعض الأحيان لغرض زيادة توافر البيانات.

لأنه إذا كان الرئيسي الخاص بك MongoDB يتعطل الخادم لأي سبب من الأسباب، ولن يكون هناك إمكانية الوصول إلى البيانات. ولكن إذا قمت بنسخ البيانات إلى خادم آخر على فترات زمنية منتظمة، فستتمكن من الوصول إلى البيانات من خادم آخر حتى في حالة فشل الخادم الأساسي.

الغرض الآخر من النسخ المتماثل هو إمكانية موازنة التحميل. إذا كان هناك العديد من المستخدمين المتصلين بالنظام، فبدلاً من اتصال الجميع بنظام واحد، يمكن للمستخدمين الاتصال بخوادم متعددة بحيث يكون هناك توزيع متساوٍ للتحميل.

In MongoDB، مضاعف MongoDB يتم تجميع الخوادم في مجموعات تسمى مجموعات النسخ المتماثلة. ستحتوي مجموعة النسخ المتماثلة على خادم أساسي سيقبل جميع عمليات الكتابة من العملاء. سيتم تسمية جميع الحالات الأخرى المضافة إلى المجموعة بعد ذلك بالحالات الثانوية التي يمكن استخدامها بشكل أساسي لجميع عمليات القراءة.

كيفية إنشاء نسخة متماثلة في MongoDB إضافة العضو الأول باستخدام rs.initiate()

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

لنفترض أنه في مثالنا، لدينا 3 خوادم تسمى ServerA وServerB وServerC. في هذا التكوين، سيكون ServerA هو خادمنا الأساسي، وسيكون ServerB وServerC هما خوادمنا الثانوية. ستعطي لقطة الشاشة أدناه فكرة أفضل عنها.

إنشاء نسخة متماثلة في MongoDB

فيما يلي الخطوات التي يجب اتباعها لإنشاء MongoDB مجموعة النسخ المتماثلة مع إضافة العضو الأول إلى المجموعة.

الخطوة 1) تأكد من إضافة كافة مثيلات mongod.exe

تأكد من تثبيت كافة مثيلات mongod.exe التي ستتم إضافتها إلى مجموعة النسخ المتماثلة على خوادم مختلفة. وذلك لضمان أنه حتى في حالة تعطل أحد الخوادم، ستكون الخوادم الأخرى متاحة وبالتالي حالات أخرى MongoDB سوف تكون متاحة.

الخطوة 2) تتصل كافة مثيلات mongo.exe ببعضها البعض

تأكد من أن جميع مثيلات mongo.exe يمكنها الاتصال ببعضها البعض. من ServerA، قم بإصدار الأمرين أدناه.

mongo –host ServerB –port 27017
mongo –host ServerC –port 27017

وبالمثل، افعل نفس الشيء مع الخوادم المتبقية.

الخطوة 3) ابدأ تشغيل مثيل mongod.exe الأول

ابدأ تشغيل مثيل mongod.exe الأول باستخدام خيار replSet. يوفر هذا الخيار مجموعة لجميع الخوادم التي ستكون جزءًا من مجموعة النسخ المتماثلة هذه.

mongo –replSet "Replica1"

حيث "Replica1" هو اسم مجموعة النسخ المتماثلة الخاصة بك. يمكنك اختيار أي اسم ذي معنى لاسم مجموعة النسخ المتماثلة الخاصة بك.

الخطوة 4) تتم إضافة الخادم الأول إلى مجموعة النسخ المتماثلة

الآن بعد أن تمت إضافة الخادم الأول إلى مجموعة النسخ المتماثلة، فإن الخطوة التالية هي بدء تشغيل مجموعة النسخ المتماثلة عن طريق إصدار الأمر التالي rs.initiate ().

الخطوة 5) التحقق من مجموعة النسخ المتماثلة

تحقق من مجموعة النسخ المتماثلة عن طريق إصدار الأمر rs.conf () للتأكد من إعداد النسخة المتماثلة بشكل صحيح.

مجموعة النسخ المتماثلة: إضافة ثانوية باستخدام rs.add()

يمكن إضافة الخوادم الثانوية إلى مجموعة النسخ المتماثلة فقط باستخدام الأمر rs.add. يأخذ هذا الأمر اسم الخوادم الثانوية ويضيف الخوادم إلى مجموعة النسخ المتماثل.

الخطوة 1) افترض أنه إذا كان لديك ServerA، وServerB، وServerC، والتي يلزم أن تكون جزءًا من مجموعة النسخ المتماثلة الخاصة بك، وتم تعريف ServerA على أنه الخادم الأساسي في مجموعة النسخ المتماثلة.

لإضافة ServerB وServerC إلى مجموعة النسخ المتماثلة، قم بإصدار الأوامر

rs.add("ServerB")
rs.add("ServerC")

مجموعة النسخ المتماثلة: إعادة التكوين أو الإزالة باستخدام rs.remove()

لإزالة خادم من مجموعة التكوين، نحتاج إلى استخدام الأمر "rs.remove".

الخطوة 1) قم أولاً بإجراء إيقاف تشغيل المثيل الذي تريد إزالته. يمكن القيام بذلك عن طريق إصدار الأمر db.shutdownserver من shell mongo.

الخطوة 2) الاتصال بالخادم الأساسي

الخطوة 3) استخدم الأمر rs.remove لإزالة الخادم المطلوب من مجموعة النسخ المتماثلة. لذا افترض أنه إذا كان لديك مجموعة نسخ متماثلة تحتوي على ServerA وServerB وServerC، وتريد إزالة ServerC من مجموعة النسخ المتماثلة، فقم بإصدار الأمر

rs.remove("ServerC")

استكشاف أخطاء مجموعات النسخ المتماثلة وإصلاحها

الخطوات التالية هي نفس الطرق التي يمكن من خلالها استكشاف الأخطاء وإصلاحها عند مواجهة مشكلات مع استخدام مجموعات النسخ المتماثلة.

  1. تأكد من أن جميع مثيلات mongo.exe يمكنها الاتصال ببعضها البعض. لنفترض أنه إذا كان لديك 3 خوادم تسمى ServerA وServerB وServerC. من الخادم أ، قم بإصدار الأمرين أدناه
mongo –host ServerB –port 27017
mongo –host ServerC –port 27017
  1. قم بتشغيل الأمر rs.status. يعطي هذا الأمر حالة مجموعة النسخ المتماثلة. افتراضيًا، سيرسل كل عضو رسائل إلى بعضهم البعض تسمى رسائل "نبضات القلب" والتي تشير فقط إلى أن الخادم حي ويعمل. يحصل أمر "الحالة" على حالة هذه الرسائل ويظهر ما إذا كانت هناك أية مشكلات مع أي أعضاء في مجموعة النسخ المتماثلة.
  2. تحقق من حجم Oplog - Oplog عبارة عن مجموعة MongoDB الذي يخزن تاريخ عمليات الكتابة التي تم إجراؤها على MongoDB قاعدة البيانات. MongoDB ثم يستخدم Oplog هذا لنسخ عمليات الكتابة إلى الأعضاء الآخرين في مجموعة النسخ المتماثلة. للتحقق من Oplog، اتصل بمثيل العضو المطلوب وقم بتشغيل الأمر rs.printReplicationInfo. سيُظهر هذا الأمر حجم السجل والمدة التي يمكنه الاحتفاظ فيها بالمعاملات في ملف السجل الخاص به قبل أن يصبح ممتلئًا.

الملخص

النسخ المتماثل في MongoDB يُشار إلى عملية التأكد من توفر نفس البيانات على أكثر من خادم Mongo DB. العديد من الأعضاء (MongoDB مثيلات) إلى مجموعة النسخ المتماثلة وفقًا للمتطلبات.