Vodič za postavljanje replike MongoDB: Primjer replikacije korak po korak

Sadržaj:

Anonim

Što je MongoDB replikacija?

Replikacija se odnosi na postupak osiguranja da su isti podaci dostupni na više od jednog Mongo DB poslužitelja. To je ponekad potrebno u svrhu povećanja dostupnosti podataka.

Jer ako vaš glavni MongoDB poslužitelj padne iz bilo kojeg razloga, neće biti pristupa podacima. Ali ako ste podatke redovito replicirali na drugi poslužitelj, moći ćete pristupiti podacima s drugog poslužitelja čak i ako primarni poslužitelj zakaže.

Sljedeća svrha replikacije je mogućnost uravnoteženja opterećenja. Ako se mnogo korisnika povezuje sa sustavom, umjesto da se svi povezuju s jednim sustavom, korisnici se mogu povezati s više poslužitelja tako da postoji jednaka raspodjela tereta.

U MongoDB-u su višestruki MongDB poslužitelji grupirani u skupove koji se nazivaju Replika skupovi. Skup replika imat će primarni poslužitelj koji će prihvatiti sve operacije upisivanja od klijenata. Sve ostale instance dodane u skup nakon toga nazvat će se sekundarnim instancama koje se prvenstveno mogu koristiti za sve operacije čitanja.

U ovom vodiču naučit ćete -

  • Set replika: dodavanje prvog člana pomoću rs.initiate ()
  • Set replika: dodavanje sekundarnog pomoću rs.add ()
  • Set replika: Ponovno konfiguriranje ili uklanjanje pomoću rs.remove ()
  • Rješavanje problema sa setovima replika

Set replika: dodavanje prvog člana pomoću rs.initiate ()

Kao što je spomenuto u prethodnom odjeljku, da bismo omogućili replikaciju, prvo moramo stvoriti skup replika MongoDB instanci.

Pretpostavimo da za naš primjer imamo 3 poslužitelja nazvana ServerA, ServerB i ServerC. U ovoj konfiguraciji ServerA bit će naš primarni poslužitelj, a ServerB i ServerC bit će naši sekundarni poslužitelji. Ispod snimka zaslona dobit ćete bolju ideju o tome.

Ispod su koraci koje treba slijediti za stvaranje skupa replika uz dodavanje prvog člana skupu.

Korak 1) Osigurajte da su sve instance mongod.exe koje će se dodati u skup replika instalirane na različitim poslužiteljima. To je osiguravanje da čak i ako jedan poslužitelj padne, ostali će biti dostupni, a time i drugi primjeri MongoDB-a.

Korak 2) Osigurajte da se sve instance mongo.exe mogu međusobno povezati. Iz ServerA izdajte dolje navedene dvije naredbe

mongo -host ServerB -port 27017
mongo -host ServerC -port 27017

Slično učinite isto na preostalim poslužiteljima.

Korak 3) Pokrenite prvu instancu mongod.exe s opcijom replSet. Ova opcija omogućuje grupiranje svih poslužitelja koji će biti dio ovog skupa replika.

mongo -replSet "Replica1"

Gdje je "Replica1" naziv vašeg kompleta replika. Za naziv skupa replika možete odabrati bilo koje suvislo ime.

Korak 4) Sada kada je prvi poslužitelj dodan skupu replika, sljedeći je korak pokretanje skupa replika izdavanjem sljedeće naredbe rs.initiate ()

Korak 5) Potvrdite skup replika izdavanjem naredbe rs.conf () kako biste osigurali ispravnu postavku replike

Set replika: dodavanje sekundarnog pomoću rs.add ()

Sekundarni poslužitelji mogu se dodati u postavku replike samo pomoću naredbe rs.add. Ova naredba uzima ime sekundarnih poslužitelja i dodaje poslužitelje u skup replikacije.

Korak 1) Pretpostavimo ako imate ServerA, ServerB i ServerC, koji moraju biti dio vašeg kompleta replika i ServerA, definiran je kao primarni poslužitelj u skupu replika.

Da biste dodali ServerB i ServerC u skup replika, izdajte naredbe

rs.add("ServerB")rs.add("ServerC")

Set replika: Ponovno konfiguriranje ili uklanjanje pomoću rs.remove ()

Da bismo uklonili poslužitelj iz skupa konfiguracije, trebamo upotrijebiti naredbu "rs.remove"

Korak 1) Prvo izvedite zaustavljanje instance koju želite ukloniti. To se može učiniti izdavanjem naredbe db.shutdownserver iz mongo ljuske.

Korak 2) Povežite se s primarnim poslužiteljem

Korak 3) Upotrijebite naredbu rs.remove za uklanjanje potrebnog poslužitelja iz skupa replika. Dakle, pretpostavimo ako imate skup replika s ServerA, ServerB i ServerC, a želite ukloniti ServerC iz kompleta replika, izdajte naredbu

rs.remove("ServerC")

Rješavanje problema sa setovima replika

Sljedeći koraci su isti načini na koje se može riješiti problem kada se naiđu na probleme prilikom upotrebe skupova replika.

  1. Osigurajte da se sve instance mongo.exe mogu međusobno povezati. Pretpostavimo ako imate 3 poslužitelja nazvana ServerA, ServerB i ServerC. Na poslužitelju A izdajte dolje navedene dvije naredbe
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
  1. Pokrenite naredbu rs.status. Ova naredba daje status kompleta replika. Prema zadanim postavkama, svaki će član međusobno slati poruke pod nazivom "otkucaji srca", što samo znači da je poslužitelj živ i da radi. Naredba "status" dobiva status ovih poruka i pokazuje postoje li problemi s bilo kojim članom u skupu replika.
  2. Provjerite veličinu Oploga - Oplog je zbirka u MongoDB koja pohranjuje povijest pisanja izvršenih u MongoDB bazu podataka. MongoDB zatim koristi ovaj Oplog za repliciranje upisa na ostale članove u skupu replika. Da biste provjerili Oplog, spojite se na potrebnu instancu člana i pokrenite naredbu rs.printReplicationInfo. Ova naredba će prikazati veličinu dnevnika i koliko dugo može držati transakcije u svojoj datoteci dnevnika prije nego što se napuni.

Sažetak:

  • Replikacija se odnosi na postupak osiguranja da su isti podaci dostupni na više od jednog Mongo DB poslužitelja. Mnogi članovi (MongoDB instance) mogu se dodati u skup Replikacija ovisno o zahtjevima.