English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عملية نسخ البيانات بين عدة خوادم هي MongoDB Replication.
يقدم التكرار نسخة احتياطية إضافية للبيانات ويخزن نسخة من البيانات على عدة سرvers، مما يزيد من قابلية البيانات للتشغيل. ويمكن أيضًا ضمان أمان البيانات.
يُسمح للتكريار أيضًا بالاستعادة من الفشل في الأجهزة وتقاطع الخدمات.
يحتاج التكرار في mongodb إلى عقدين على الأقل. واحد منها هو العقد الرئيسي، وهو مسؤول عن معالجة طلبات العملاء، والآخرون هم العقد الفرعية، وهي مسؤولة عن نسخ بيانات العقد الرئيسي.
طريقة التكامل الشائعة بين العقد في mongodb هي: واحد رئيسي وواحد فرعي، أو واحد رئيسي والعديد من الفرعيات.
يُسجل العقد الرئيسي في oplog الذي يتم تنفيذه عليه، ويقوم العقد الفرعي بمراقبة العقد الرئيسي بانتظام للحصول على هذه العمليات، ثم يطبق هذه العمليات على نسخة البيانات الخاصة به، مما يضمن أن تكون بيانات العقد الفرعي متزامنة مع العقد الرئيسي.
هيكل تكرار MongoDB كما يلي:
في هيكل الرسم التوضيحي أعلاه، يقرأ العميل البيانات من العقد الرئيسي، ويكتب البيانات في العقد الرئيسي من قبل العميل، يضمن العقد الرئيسي والعقد الفرعي تبادل البيانات لضمان تزامن البيانات.
في هذا الدرس، نستخدم نفس MongoDB لتحقيق تجربة MongoDB الرئيسي والمتعدد من النوع الثانوي إليك الخطوات التالية:
1. أغلق خادم MongoDB الذي يعمل حاليًا.
الآن نبدأ mongoDB باستخدام خيار --replSet. نموذج الجملة الأساسي لـ --replSet هو كما يلي:
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
في هذا المثال، سيتم بدء نموذج MongoDB rs0، وهو يستخدم منفذ 27017
بعد بدءها، افتح نافذة السطر وأرتبط بخدمة mongoDB
استخدم أمر rs.initiate() في محطة mongo لبدء مجموعة تكرار جديدة
يمكننا استخدام rs.conf() للتحقق من تكوين مجموعة التكرار
للتحقق من حالة مجموعة التكرار استخدم أمر rs.status()
لإضافة أعضاء مجموعة التكرار، يجب استخدام عدة سرvers لبدء خدمة mongo. أدخل محطة mongo، واستخدم طريقة rs.add() لإضافة أعضاء مجموعة التكرار.
>rs.add(HOST_NAME:PORT)
افترض أنك قد قمت ببدء خدمة MongoDB تُدعى mongod1.net، وبتوصيل 27017. استخدم الأمر rs.add() في نافذة الأوامر على العميل لتضيفها إلى مجموعة النسخ، والأمر كما يلي:
>rs.add("mongod1.net:27017") >
يمكنك فقط إضافة خدمة MongoDB إلى مجموعة النسخ من خلال المزود الرئيسي، يمكنك استخدام الأمر db.isMaster() لتحديد ما إذا كان خدمة MongoDB التي تعمل حاليًا مزود رئيسيًا.
مجموعات النسخ من MongoDB مختلفة عن النسخة الرئيسية والفرعية التي نراها عادةً، حيث تتوقف جميع الخدمات عند فشل المزود الرئيسي، بينما تأخذ النسخة الفرعية المزود الرئيسي وتصبح المزود الرئيسي نفسها بعد فشل المزود الرئيسي، مما يمنع ظهور حالات الفشل.