Ülevaade replikatsioonist MongoDB-s

MongoDB on avatud lähtekoodiga dokumendile orienteeritud andmebaas, mis on väga skaleeritav, see on NoSQL andmebaas. Seda saab kasutada suuremahuliseks andmete salvestamiseks.

MongoDB salvestab andmed JSON-vormingus, mis on väga paindlik ja dokumendimudel kaardistatakse seejärel objektidega rakenduskoodides.

Mis on MongoDB replikatsioon?

Replikatsiooni all peame silmas sama funktsionaalsust täidetavate serverite rühmitust. MongoDB puhul on meil andmete salvestamiseks MongoDB serverid. Kopeerimise eesmärk on tagada andmete kõrge kättesaadavus. Juhul, kui mõni serveritest läheb alla, peaks meil alati olema teises serveris saadaolevate andmete koopia, et see ei mõjutaks saadavust.

Andmeid tuleks korrata korrapäraselt ja korrapäraste ajavahemike järel, et olla kindel, et me ei kaota ühtegi teavet ja isegi kui esmane server läheb alla, peaks teine ​​olema võimeline kasutaja taotlusi teenindama.

Kopeerimine on väga efektiivne ka koormuse tasakaalustamise korral, näiteks kui meil on mitu kasutajat, kes proovivad serveritesse andmeid lugeda või neid kirjutada, oleks sel juhul ebaõiglane, kui kõik päringud saadetakse või võetakse vastu lihtsalt ühe serveri jaoks, peaks olema tasakaalustusmehhanism, mis peaks koormuse võrdselt jaotama klastris saadaolevatele serveritele nii, et ühelgi serveril ei kuluks mälu ega ribalaiust ega läheks alla.

Replikatsiooni toimimine MongoDB protsessis

Replikatsioon MongoDB-s saavutatakse replikakomplektide abil. Kopeerimiskomplektid on MongoDB serverite rühmitus. Seal on primaarserver ja see vastutab klientidelt kõigi päringute või kirjutamisoperatsioonide vastuvõtmise eest ja teisi koopiaid, mis lisatakse replikate komplekti, nimetatakse sekundaarseteks eksemplarideks, kes vastutavad kõigi loetud toimingute eest.

  • Nagu ülaltoodud diagrammil näidatud, replitseerivad kõik andmed primaarsõlme sekundaarsõlmedesse, igas replikakomplektis on ainult üks primaarsõlm.
  • Iga kord, kui tõrge toimub või toimub mõni hooldustegevus, valitakse uus primaarsõlm.
  • Kui tõrge on taastatud, toimib ebaõnnestunud sõlm nüüd sekundaarsõlmena.
  • Kliendirakendus suhtleb alati primaarsõlmega, millele järgneb andmete replikatsioon kõigile sekundaarsõlmedele.

Kopeerimiskomplektid, loomine ja toimingud

MongoDB serverite täieõigusliku replikatsiooni loomiseks peame esmalt looma MongoDB eksemplaride koopia.

Kujutame ette, et meil on kolm serverit, repl1, repl2 ja repl3, kus repl1 on esmane server ja ülejäänud on sekundaarsed.

Primaarse sõlme replikatsiooni lisamine MongoDB-s:

  • Veenduge, et mongo.exe eksemplarid on installitud kõikidele serveritesse.
  • Kõik mongod.exe peavad saama üksteist pingutada, st nad saavad suhelda. Selle kontrollimiseks käivitage primaarserveritest (alguses) järgmised käsud, st meie puhul repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Samamoodi saame sama testi teha ka teistest serveritest

  • Käsu mongo –replset abil peaksime saama käivitada oma esimese mongod.exe eksemplari.
    mongo –replset “Replica_A” kus Replica_A on meie replica komplekti nimi.
  • Praeguse seisuga oleme oma replikate komplekti lisanud esimese serveri, järgmine samm on replica komplekti käivitamine käsu rs.initiate () väljaandmisega.
  • Järgmine samm on kontrollimise samm, kus tagame, et kõik, mis me seni oleme konfigureerinud, on õige, saame seda teha käsu rs.conf () käivitamisega.

Teisese sõlme replikatsiooni lisamine MongoDB-s:

Kui primaarserver on lisatud, on teisi sekundaarsõlmi lihtne lisada, saame seda teha, väljastades käsu rs.add ().

Seetõttu käivitage allpool olev käsk, kuna repl1 on meie peamine server ja repl2 ja repl3 on vastavalt sekundaarserverid.

rs.add (“repl2”)

rs.add (“repl3”)

Serverite eemaldamine replikakomplektist:

Serveri eemaldamiseks igast koopiakomplektist saab seda teha käsu rs.remove () abil.

Allpool toodud protsessis osalevad teatud sammud:

  • Alguses sulgege eemaldamiseks vajalik eksemplar. Seda saab teha, käivitades mongo-lahtri kaudu käsu db.shutdownserver.
  • Järgmine samm on ühenduse loomine primaarserveriga.
  • Käivitage järgmine käsk, oletame, et meil on vastavalt primaarsete ja sekundaarserveritena repl1, repl2 ja repl3 ning tahame repl3 eemaldada, siis käivitame järgmise käsu:

rs.remove (“repl3”)

Mõned käsud tõrkeotsinguks

  • Kõik mongod.exe peavad saama üksteist pingutada, st nad saavad suhelda. Selle kontrollimiseks käivitage primaarserveritest (alguses) järgmised käsud, st meie puhul repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Samamoodi saame sama testi teha ka teistest serveritest

  • Rs.status () annab teie koopia oleku
  • Oplog'i kontrollimiseks, mis on kõigi tehtud kirjutamistoimingute registreerimise logi, väljastage see käsk - rs.printReplicationInfo.

Replikatsiooni eelised MongoDB-is

Kopeerimise eesmärk on tagada andmete kõrge kättesaadavus. Juhul, kui mõni serveritest läheb alla, peaks meil alati olema teises serveris saadaolevate andmete koopia, et see ei mõjutaks juurdepääsu. Replikatsioon on väga tõhus ka koormuse tasakaalustamise korral, näiteks kui meil on arv kasutajatest proovib serveritesse andmeid lugeda või neid kirjutada.

Nii pikk lugu, replikatsiooni peamised eelised täidavad järgmist eesmärki:

  1. Kõrge kättesaadavus
  2. Koormuse tasakaalustamine

Järeldus:

Nagu nägime, on MongoDB replikatsioon protsess, kus replitseerime andmeid suuremas saadavuses rohkem kui ühes serveris. Seda saab teha, luues koopiakomplekti ja lisades primaarsed ja sekundaarserverid.

Soovitatavad artiklid:

See on MongoDB-s replikatsiooni juhend. Siin käsitleme tõrkeotsingu loomist, kasutamist, töötamist, eeliseid ja mõnda käsku. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. MongoDB GUI tööriistad
  2. MongoDB käsud
  3. MongoDB alternatiivid
  4. Kuidas installida MongoDB