MongoDB Replikacija: Kako stvoriti MongoDB Komplet replika
⚡ Pametni sažetak
MongoDB Replikacija čuva identične podatke na više od jednog MongoDB poslužitelj, štiteći od kvara poslužitelja i omogućujući uravnoteženje opterećenja. Grupirano MongoDB instance tvore skup replika s jednim primarnim članom koji prihvaća pisanje i sekundarnim članovima koji obrađuju operacije čitanja i prebacivanje u slučaju kvara.
Što je MongoDB Replikacija?
Replikacija se naziva procesom osiguravanja da su isti podaci dostupni na više od jednog MongoDB Poslužitelj. To je ponekad potrebno radi povećanja dostupnosti podataka.
Jer ako vaš glavni MongoDB Poslužitelj pada iz bilo kojeg razloga, neće biti pristupa podacima. Ali ako ste podatke replicirali na drugi poslužitelj u redovitim intervalima, moći ćete pristupiti podacima s drugog poslužitelja čak i ako primarni poslužitelj zakaže.
Druga svrha replikacije je mogućnost uravnoteženja opterećenja. Ako postoji mnogo korisnika koji se povezuju na sustav, umjesto da se svi povezuju na jedan sustav, korisnici mogu biti povezani na više poslužitelja tako da postoji jednaka raspodjela opterećenja.
In MongoDB, višestruko MongoDB Poslužitelji su grupirani u skupove koji se nazivaju skupovi replika. Skup replika imat će primarni poslužitelj koji će prihvaćati sve operacije pisanja od klijenata. Sve ostale instance dodane skupu nakon toga nazivat će se sekundarnim instancama, koje se mogu primarno koristiti za sve operacije čitanja.
Kako stvoriti repliku Set in MongoDB 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 pod nazivom ServerA, ServerB i ServerC. U ovoj konfiguraciji, ServerA će biti naš primarni poslužitelj, a ServerB i ServerC će biti naši sekundarni poslužitelji. Donja snimka zaslona dat će bolju ideju o tome.
U nastavku su navedeni koraci koje je potrebno slijediti za stvaranje MongoDB skup replika zajedno s dodatkom prvog člana skupu.
Korak 1) Provjerite jesu li dodane sve instance mongod.exe
Osigurajte da su sve instance mongod.exe koje će biti dodane u skup replika instalirane na različitim poslužiteljima. To je kako bi se osiguralo da će čak i ako jedan poslužitelj padne, ostali biti dostupni, a time i druge instance MongoDB bit će dostupna.
Korak 2) Sve instance mongo.exe se međusobno povezuju
Provjerite mogu li se sve instance mongo.exe međusobno povezati. Iz poslužitelja A izdajte sljedeće 2 naredbe.
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
Slično, učinite istu stvar s preostalih poslužitelja.
Korak 3) Pokrenite prvu instancu mongod.exe
Pokrenite prvu instancu mongod.exe s opcijom replSet. Ova opcija pruža grupuping za sve poslužitelje koji će biti dio ovog skupa replika.
mongo --replSet "Replica1"
Gdje je "Replica1" naziv vašeg skupa replika. Možete odabrati bilo koje smisleno ime za naziv skupa replika.
Korak 4) Prvi poslužitelj se dodaje u skup replika
Sada kada je prvi poslužitelj dodan u skup replika, sljedeći korak je pokretanje skupa replika izdavanjem sljedeće naredbe rs.initiate().
Korak 5) Provjerite skup replika
Provjerite skup replika izdavanjem naredbe rs.conf() kako biste bili sigurni da je skup replika ispravno postavljen.
Skup replika: Dodavanje sekundarnog pomoću rs.add()
Sekundarni poslužitelji mogu se dodati skupu replika samo pomoću naredbe rs.add. Ova naredba preuzima nazive sekundarnih poslužitelja i dodaje poslužitelje skupu replikacije.
Korak 1) Pretpostavimo da imate ServerA, ServerB i ServerC, koji moraju biti dio vašeg skupa replika, a ServerA je definiran kao primarni poslužitelj u skupu replika.
Za dodavanje ServerB i ServerC u skup replika, izdajte naredbe:
rs.add("ServerB") rs.add("ServerC")
Skup replika: Ponovno konfiguriranje ili uklanjanje pomoću rs.remove()
Za uklanjanje poslužitelja iz konfiguracijskog skupa, moramo koristiti naredbu "rs.remove".
Korak 1) Prvo isključite instancu koju želite ukloniti. To možete učiniti izdavanjem naredbe db.shutdownServer iz Mongo ljuske.
Korak 2) Povežite se s primarnim poslužiteljem.
Korak 3) Pomoću naredbe rs.remove uklonite potreban poslužitelj iz skupa replika. Dakle, pretpostavimo da imate skup replika sa ServerA, ServerB i ServerC i želite ukloniti ServerC iz skupa replika, izdajte naredbu:
rs.remove("ServerC")
Rješavanje problema replika kompleta
Slijede isti načini na koje se mogu riješiti problemi kada se pojave problemi s korištenjem skupova replika.
- Provjerite mogu li se sve instance mongo.exe međusobno povezati. Pretpostavimo da imate 3 poslužitelja pod nazivom ServerA, ServerB i ServerC. Iz ServerA izdajte sljedeće 2 naredbe:
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
- Pokrenite naredbu rs.status. Ova naredba daje status skupa replika. Prema zadanim postavkama, svaki član će međusobno slati poruke koje se nazivaju "poruke otkucaja srca", a koje samo ukazuju na to da je poslužitelj aktivan i radi. Naredba "status" dobiva status tih poruka i prikazuje postoje li problemi s bilo kojim članom u skupu replika.
- Provjerite veličinu Oploga. Oplog je kolekcija u MongoDB koji pohranjuje povijest zapisa koji su učinjeni MongoDB baza podataka. MongoDB zatim koristi ovaj Oplog za repliciranje zapisa na druge članove u skupu replika. Da provjerite Oplog, povežite se na traženu instancu člana i pokrenite naredbu rs.printReplicationInfo. Ova naredba će pokazati veličinu dnevnika i koliko dugo može držati transakcije u svojoj datoteci dnevnika prije nego što se napuni.


