Nega Replica Set kerak va u qanday ishlaydi?
MongoDB-da 3 va undan ortiq portda Replica Set sozlash
MongoDB-da Replica Set — bu ma’lumotlarning mustahkamligini va mavjudligini oshirish uchun ishlatiladigan klasterlash texnologiyasidir. Replica Set bir nechta serverlarda bir xil ma’lumotlarning nusxasini saqlash imkonini beradi, shuningdek, server buzilganda yoki ulanish uzilganda ma’lumotlarning yo’qolishining oldini oladi.
Nega Replica Set kerak?
- Ma’lumotlarning mavjudligini ta’minlash — Agar asosiy server ishlamay qolsa, boshqa serverlar avtomatik ravishda yetakchilikni o’z zimmasiga oladi.
- O’qish yuklamasini kamaytirish — Ikkinchi darajali serverlar ma’lumotlarni o’qish uchun ishlatilishi mumkin, bu esa asosiy serverga tushadigan bosimni kamaytiradi.
- Zaxira nusxalarini ta’minlash — Bir nechta tugunlar mavjudligi tufayli ma’lumotlar yo‘qolib qolish ehtimoli kamayadi.
- Server uzilishlarini bartaraf etish — Agar asosiy server ishdan chiqsa, ikkinchi darajali server avtomatik ravishda asosiy server rolini bajaradi.
Replica Set qanday ishlaydi?
Replica Set uchta asosiy komponentdan iborat:
- Primary (Asosiy server) — Barcha yozish operatsiyalarini bajaradi va ma’lumotlarni ikkilamchi tugunlarga replikatsiya qiladi.
- Secondary (Ikkilamchi serverlar) — Primary tugundan ma’lumotlarni nusxalash va o‘qish so‘rovlarini bajarish uchun ishlatiladi.
- Arbiter (Arbitraj tuguni, ixtiyoriy) — Agar primary server ishlamay qolsa, arbiter qaysi secondary server primary bo‘lishini aniqlashda yordam beradi.
Tizim talablari
- MongoDB o‘rnatilgan bo‘lishi kerak
- Kamida 3 ta instansiya yoki port bo‘yicha sozlash imkoniyati
mongod
jarayonini har bir port uchun ishga tushirish
1. MongoDB instansiyalarini ishga tushirish
Uchta alohida MongoDB serverini ishga tushiramiz. Buning uchun quyidagi buyruqlarni bajarish kerak:
mkdir -p ~/mongodb/rs1 ~/mongodb/rs2 ~/mongodb/rs3
mongod --port 27017 --dbpath ~/mongodb/rs1 --replSet myReplicaSet --fork --logpath ~/mongodb/rs1.log
mongod --port 27018 --dbpath ~/mongodb/rs2 --replSet myReplicaSet --fork --logpath ~/mongodb/rs2.log
mongod --port 27019 --dbpath ~/mongodb/rs3 --replSet myReplicaSet --fork --logpath ~/mongodb/rs3.log
Ushbu buyruqlar 27017, 27018, 27019 portlarida uchta mustaqil MongoDB instansiyasini ishga tushiradi va har biri “myReplicaSet” replika setining bir qismi sifatida ishlaydi.
2. Replica Set ni boshlash
Endi MongoDB shell ni ochib, quyidagi buyruqlar orqali Replica Set ni sozlashni boshlaymiz.
mongo --port 27017
MongoDB shell ochilgandan so‘ng quyidagi buyruqni kiriting:
rs.initiate(
{
_id: "myReplicaSet",
members: [
{ _id: 0, host: "localhost:27017" },
{ _id: 1, host: "localhost:27018" },
{ _id: 2, host: "localhost:27019" }
]
}
)
Bu kod Replica Set ni ishga tushiradi va uchta nodeni unga qo’shadi.
3. Replica Set holatini tekshirish
Replica Set muvaffaqiyatli ishlayotganini tekshirish uchun quyidagi buyruqni kiriting:
rs.status()
Agar hamma narsa to‘g‘ri ishlayotgan bo‘lsa, PRIMARY va SECONDARY holatdagi tugunlarni ko‘rishingiz mumkin.
4. Yangi nodelarni qo‘shish (ixtiyoriy)
Agar siz yana biror tugunni qo’shmoqchi bo’lsangiz, quyidagi buyruqni ishlatishingiz mumkin:
rs.add("localhost:27020")
Bu 27020 portida yangi tugunni Replica Set ga qo’shadi.
Xulosa
Ushbu maqolada MongoDB Replica Set nima ekanligi, uning vazifalari, nima uchun kerakligi va uni 3 va undan ortiq portda qanday sozlash bo‘yicha to‘liq amaliy qo‘llanma taqdim etildi. Ushbu konfiguratsiya ma’lumotlarning xavfsizligi va mavjudligini oshirishga yordam beradi.