Pregled podvajanja v MongoDB

MongoDB je odprtokodna dokumentacijsko naravnana baza podatkov, ki je zelo razširljiva in je baza podatkov NoSQL. Uporablja se lahko za shranjevanje podatkov z veliko količino.

MongoDB podatke shrani v obliki JSON, ki je zelo prilagodljiva in dokumentni model nato preslika na predmete v aplikacijskih kodah.

Kaj je podvajanje MongoDB?

Pod podvajanjem mislimo na združevanje strežnikov, ki izvajajo isto funkcijo. V primeru MongoDB imamo MongoDB strežnike za shranjevanje podatkov. Namen podvajanja je zagotoviti visoko razpoložljivost podatkov. Če se kateri koli od strežnikov zmanjša, bi morali imeti vedno na voljo kopijo podatkov na drugem strežniku, tako da razpoložljivost ne vpliva.

Podatke je treba ponavljati občasno in v rednih časovnih presledkih, da preprečimo, da ne izgubimo nobenih podatkov, četudi primarni strežnik odpade, pa bi drugi moral biti sposoben uporabnikom posredovati zahteve.

Podvajanje je zelo učinkovito tudi v primeru izravnave obremenitve, če na primer številni uporabniki poskušajo prebrati ali zapisati podatke na strežnike, v tem primeru bi bilo nepošteno, če bi vsa zahteva poslana ali pridobljena iz na enem strežniku bi moral obstajati mehanizem za izravnavo, ki bi moral enakomerno porazdeliti obremenitev na razpoložljive strežnike v grozdu, tako da nobenemu strežniku ne zmanjka pomnilnika ali pasovne širine in se zmanjša.

Delovanje replike v procesu MongoDB

Podvajanje v MongoDB je doseženo s pomočjo nizov Replica. Replični nizi so skupina MongoDB strežnikov. Obstaja primarni strežnik in odgovoren je za sprejemanje vseh zahtev ali pisalnih operacij od odjemalcev, drugi primerki, ki bodo dodani v niz kopij, pa bodo poklicani kot sekundarni primerki, ki bodo odgovorni za vse operacije branja.

  • Kot je prikazano na zgornjem diagramu, vsi podatki replicirajo primarno vozlišče v sekundarna vozlišča, v katerem koli nizu replik bo le eno primarno vozlišče.
  • Kadar koli se zgodi prekinitev ali se izvaja kakšna vzdrževalna dejavnost, se izbere novo primarno vozlišče.
  • Ko se povrne preklapljanje, neuspešno vozlišče zdaj deluje kot sekundarno vozlišče.
  • Odjemalska aplikacija vedno komunicira s primarnim vozliščem, ki mu nato sledi podvajanje podatkov na vsa sekundarna vozlišča.

Replicične garniture, ustvarjanje in operacije

Da bi ustvarili celovito podvajanje strežnikov MongoDB, moramo najprej ustvariti niz replik primerkov MongoDB.

Predstavljajmo si, da imamo tri strežnike, repl1, repl2 in repl3, kjer je repl1 primarni strežnik, preostali pa so sekundarni.

Dodajanje podvajanja primarnih vozlišč v MongoDB:

  • Prepričajte se, da so primeri mongo.exe nameščeni na vseh danih strežnikih.
  • Vsi mongod.exe morajo biti sposobni ping drug drugega, tj. Lahko komunicirajo. Če želite preveriti isto, zaženite naslednje ukaze s primarnih strežnikov (sprva), torej v našem primeru repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Podobno lahko naredimo enak test tudi na drugih strežnikih

  • Z uporabo ukaza mongo –replset bi morali začeti svoj prvi primerek mongod.exe.
    mongo –replset “Replica_A” Kjer je Replica_A ime našega niza replik.
  • Kot zaenkrat smo v naš nabor replik dodali prvi strežnik, je naslednji korak, da začnete niz replik z izdajo ukaza rs.initiate ().
  • Naslednji korak je korak preverjanja, kjer bomo zagotovili, da je vse, kar smo doslej konfigurirali, pravilno, to lahko storimo z izvajanjem ukaza rs.conf ().

Dodajanje podvajanja sekundarnih vozlišč v MongoDB:

Ko je primarni strežnik dodan, je enostavno dodati še druga sekundarna vozlišča, to lahko storimo z izdajo ukaza rs.add ().

Zato zaženite spodnji ukaz, saj je repl1 naš primarni strežnik, repl2 in repl3 pa sekundarni strežnik.

rs.add ("repl2")

rs.add ("repl3")

Odstranjevanje strežnikov iz Replica Set:

Če želite odstraniti strežnik iz katerega koli nabora replike, lahko to storite z ukazom rs.remove ().

V postopku so navedeni nekateri koraki, kot so navedeni spodaj:

  • Najprej izklopite primerek, ki ga je treba odstraniti. To lahko storite z izvajanjem ukaza db.shutdownserver prek mongo celice.
  • Naslednji korak je povezava s primarnim strežnikom.
  • Izvedite naslednji ukaz, recimo, da imamo repl1, repl2 in repl3 kot primarne in sekundarne strežnike in želimo odstraniti repl3, nato bomo zagnali naslednji ukaz:

rs.remove ("repl3")

Nekaj ​​ukazov za odpravljanje težav

  • Vsi mongod.exe morajo biti sposobni med seboj pingi, tj. Lahko komunicirajo. Če želite preveriti isto, zaženite naslednje ukaze s primarnih strežnikov (sprva), torej v našem primeru repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Podobno lahko naredimo enak test tudi na drugih strežnikih

  • Rs.status () bo dodal status vašega nabora replike
  • Če želite preveriti oplog, ki je dnevnik za beleženje vseh opravljenih pisalnih operacij, izdajte ta ukaz - rs.printReplicationInfo.

Prednosti replikacije v MongoDB

Namen podvajanja je zagotoviti visoko razpoložljivost podatkov. Če se kateri koli od strežnikov zmanjša, bi morali imeti vedno na voljo kopijo podatkov na drugem strežniku, tako da razpoložljivost ne vpliva. Podvajanje je zelo učinkovito tudi v primeru izravnave obremenitve, na primer, če imamo številko Uporabniki poskušajo brati ali pisati podatke na strežnike.

V nadaljevanju kratke zgodbe so glavne prednosti posnemanja spodnji namen:

  1. Visoka dostopnost
  2. Izravnava obremenitve

Zaključek:

Kot smo videli, je podvajanje MongoDB postopek, v katerem repliciramo podatke na več kot enem strežniku, da zagotovimo visoko razpoložljivost. To lahko storite tako, da ustvarite niz replik in dodate primarni in sekundarni strežnik.

Priporočeni članki:

To je vodnik za razmnoževanje v MongoDB. Tukaj razpravljamo o ustvarjanju, delovanju, delu, prednostih in nekaterih ukazih za odpravljanje težav. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Orodja za MongoDB GUI
  2. Ukazi MongoDB
  3. Alternativa MongoDB
  4. Kako namestiti MongoDB