Pregled replikacije u MongoDB

MongoDB je baza podataka otvorenog koda orijentirana na dokumenta, što je vrlo skalabilno, to je NoSQL baza podataka. Može se koristiti za pohranu podataka velikog volumena.

MongoDB pohranjuje podatke u JSON formatu koji je vrlo fleksibilan, a model dokumenta potom mapira objekte u aplikacijskim kodovima.

Što je MongoDB replikacija?

Pod replikacijom podrazumijevamo grupiranje poslužitelja koji izvode istu funkcionalnost. U slučaju MongoDB, imamo MongoDB poslužitelje za pohranu podataka. Svrha replikacije je osigurati visoku dostupnost podataka. U slučaju da se neki od poslužitelja pokvari, uvijek bismo trebali imati kopiju podataka dostupnih na drugom poslužitelju kako to ne bi utjecalo na dostupnost.

Podaci bi se trebali ponavljati periodično i u redovitim intervalima kako bismo bili sigurni da ne gubimo nikakve podatke, pa čak i ako primarni poslužitelj padne, drugi bi trebao biti u mogućnosti služiti korisničkim zahtjevima.

Replikacija je također vrlo učinkovita u slučaju uravnoteženja opterećenja, na primjer, ako imamo nekoliko korisnika koji pokušavaju čitati ili pisati podatke na poslužitelje, u tom slučaju bilo bi nepošteno kada bi se svi zahtjevi poslali ili preuzeli samo na jednom poslužitelju, trebao bi postojati mehanizam za uravnoteženje koji bi trebao ravnomjerno rasporediti opterećenje na dostupnim poslužiteljima u klasteru, tako da nijedan server ne potroši memoriju ili propusnost i padne.

Rad na replikaciji u MongoDB procesu

Replikacija u MongoDB postiže se pomoću skupova Replica. Skup replika je skupina MongoDB poslužitelja. Postoji primarni poslužitelj i odgovoran je za primanje svih zahtjeva ili operacija pisanja od klijenata, a ostale instance koje će biti dodane skupu replika nazivat će se kao sekundarne instance koje će biti odgovorne za sve operacije čitanja.

  • Kao što je prikazano na gornjem dijagramu, svi podaci repliciraju primarni čvor na sekundarne čvorove, postojat će samo jedan primarni čvor u bilo kojem nizu replika.
  • Kad god se dogodi neuspjeh ili se izvrši neka aktivnost održavanja, bira se novi primarni čvor.
  • Nakon što se pogreška oporavio, neuspjeli čvor sada djeluje kao sekundarni čvor.
  • Klijentska aplikacija uvijek komunicira s primarnim čvorom, nakon čega slijedi replikacija podataka na sve sekundarne čvorove.

Replika setovi, izrada i operacije

Da bismo stvorili cjelovitu replikaciju MongoDB poslužitelja, prvo moramo stvoriti skup replika MongoDB instanci.

Zamislimo da imamo tri poslužitelja, repl1, repl2 i repl3 gdje je repl1 primarni poslužitelj, a preostali su sekundarni.

Dodavanje replikacije primarnog čvora u MongoDB:

  • Provjerite jesu li primjerci mongo.exe instalirani na svim danim poslužiteljima.
  • Svi mongod.exe moraju se moći međusobno pingirati tj. Moći komunicirati. Da biste provjerili isto, pokrenite sljedeće naredbe s primarnih poslužitelja (isprva), tj. Repl1 u našem slučaju.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Slično tome, možemo napraviti isti test i s drugih poslužitelja

  • Korištenjem naredbe mongo –replset trebali bismo moći pokrenuti našu prvu instancu mongod.exe.
    mongo –replset “Replica_A” Gdje je Replica_A naziv našeg skupa replika.
  • Kao i za sada, dodali smo prvi poslužitelj našem skupu replika, sljedeći je korak iniciranje skupa replika izdavanjem naredbe rs.initiate ().
  • Sljedeći korak je korak provjere gdje ćemo osigurati da sve što smo do sada konfigurirali, to možemo učiniti pokretanjem naredbe rs.conf ().

Dodavanje replikacije sekundarnog čvora u MongoDB:

Nakon dodavanja primarnog poslužitelja lako je dodati ostale sekundarne čvorove, to možemo učiniti izdavanjem naredbe rs.add ().

Dakle, pokrenite naredbu ispod, s obzirom da je repl1 naš primarni poslužitelj, a repl2 i repl3 su sekundarni poslužitelji.

rs.add ( „”) repl2

rs.add ( „”) repl3

Uklanjanje poslužitelja iz replika:

Da biste uklonili poslužitelj iz bilo kojeg skupa replika, to se može učiniti pomoću naredbe rs.remove ().

Postoje određeni koraci koji su uključeni u postupak kako je dolje navedeno:

  • U početku isključite instancu koju je potrebno ukloniti. To se može postići pokretanjem naredbe db.shutdownserver preko mongo ćelije.
  • Sljedeći korak je spajanje na primarni poslužitelj.
  • Pokrenite sljedeću naredbu, recimo da imamo repl1, repl2 i repl3 kao primarne i sekundarne servere, a želimo ukloniti repl3, tada ćemo pokrenuti sljedeću naredbu:

rs.remove ( „”) repl3

Neke naredbe za rješavanje problema

  • Svi mongod.exe moraju se moći međusobno pingirati tj. Moći komunicirati. Da biste provjerili isto, pokrenite sljedeće naredbe s primarnih poslužitelja (isprva), tj. Repl1 u našem slučaju.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Slično tome, možemo napraviti isti test i s drugih poslužitelja

  • Rs.status () dat će status skupu vaših replika
  • Za provjeru oplog-a, koji je dnevnik za snimanje svih izvršenih operacija pisanja, izdajte ovu naredbu - rs.printReplicationInfo.

Prednosti replikacije u MongoDB

Svrha replikacije je osigurati visoku dostupnost podataka. U slučaju da se neki od poslužitelja spusti, uvijek bismo trebali imati kopiju podataka dostupnih na drugom poslužitelju kako to ne bi utjecalo na dostupnost. Replikacija je također vrlo učinkovita u slučaju uravnoteženja opterećenja, na primjer, ako imamo broj korisnika korisnika pokušava čitati ili pisati podatke na poslužitelje.

Dakle, ukratko, glavne prednosti replikacije služe sljedećoj svrsi:

  1. Visoka dostupnost
  2. Izravnavanje opterećenja

Zaključak:

Kao što smo vidjeli, MongoDB replikacija je proces u kojem repliciramo podatke na više poslužitelja kako bismo osigurali visoku dostupnost. To se može postići stvaranjem skupa replika i dodavanjem primarnog i sekundarnog poslužitelja.

Preporučeni članci:

Ovo je vodič za replikaciju u MongoDB. Ovdje smo raspravljali o stvaranju, radu, radu, prednostima i nekim naredbama za rješavanje problema. Možete i proći naše druge predložene članke da biste saznali više -

  1. MongoDB GUI alati
  2. MongoDB naredbe
  3. MongoDB alternative
  4. Kako instalirati MongoDB

Kategorija: