Hvad er MongoDB-replikering?
Replikering henvises til processen for at sikre, at de samme data er tilgængelige på mere end en Mongo DB-server. Dette er undertiden nødvendigt med det formål at øge datatilgængeligheden.
Fordi hvis din vigtigste MongoDB-server af en eller anden grund går ned, vil der ikke være adgang til dataene. Men hvis du havde replikeret dataene til en anden server med jævne mellemrum, vil du være i stand til at få adgang til dataene fra en anden server, selvom den primære server fejler.
Et andet formål med replikering er muligheden for belastningsafbalancering. Hvis der er mange brugere, der opretter forbindelse til systemet, kan brugerne i stedet for at få alle til at oprette forbindelse til et system være forbundet til flere servere, så der er en lige stor fordeling af belastningen.
I MongoDB er flere MongDB-servere grupperet i sæt kaldet replikasæt. Replikasættet har en primær server, der accepterer al skrivning fra klienter. Alle andre forekomster, der føjes til sættet efter dette, kaldes de sekundære forekomster, som primært kan bruges til alle læseoperationer.
I denne vejledning lærer du -
- Replikasæt: Tilføjelse af det første medlem ved hjælp af rs.initiate ()
- Replikasæt: Tilføjelse af en sekundær ved hjælp af rs.add ()
- Replikasæt: Omkonfigurering eller fjernelse ved hjælp af rs.remove ()
- Fejlfinding af replika-sæt
Replikasæt: Tilføjelse af det første medlem ved hjælp af rs.initiate ()
Som nævnt i det foregående afsnit skal vi først oprette et replikningssæt af MongoDB-forekomster for at muliggøre replikering.
Lad os antage, at vi for vores eksempel har 3 servere kaldet ServerA, ServerB og ServerC. I denne konfiguration vil ServerA være vores primære server, og ServerB og ServerC vil være vores sekundære servere. Nedenstående skærmbillede giver en bedre idé om det.
Nedenfor er de trin, der skal følges for at oprette replikasættet sammen med tilføjelsen af det første medlem til sættet.
Trin 1) Sørg for, at alle mongod.exe-forekomster, der føjes til replikasættet, er installeret på forskellige servere. Dette er for at sikre, at selvom en server går ned, vil de andre være tilgængelige, og derfor vil andre forekomster af MongoDB være tilgængelige.
Trin 2) Sørg for, at alle mongo.exe-forekomster kan oprette forbindelse til hinanden. Fra ServerA skal du udstede nedenstående 2 kommandoer
mongo -host ServerB -port 27017
mongo -host ServerC -port 27017
På samme måde skal du gøre det samme fra de resterende servere.
Trin 3) Start den første forekomst af mongod.exe med indstillingen replSet. Denne mulighed giver en gruppering for alle servere, der vil være en del af dette replikasæt.
mongo -replSet "Replica1"
Hvor "Replika 1" er navnet på dit replikasæt. Du kan vælge ethvert meningsfuldt navn til dit replika-sætnavn.
Trin 4) Nu hvor den første server føjes til replikasættet, er det næste trin at starte replikasættet ved at udstede følgende kommando rs.initiate ()
Trin 5) Bekræft replika-sæt ved at udstede kommandoen rs.conf () for at sikre, at replikaen er konfigureret korrekt
Replikasæt: Tilføjelse af en sekundær ved hjælp af rs.add ()
De sekundære servere kan føjes til replikasættet ved blot at bruge kommandoen rs.add. Denne kommando tager navnet på de sekundære servere og føjer serverne til replikationssættet.
Trin 1) Antag, at hvis du har ServerA, ServerB og ServerC, som kræves for at være en del af dit replikasæt, og ServerA, defineres som den primære server i replikasættet.
For at tilføje ServerB og ServerC til replikasættet udsted kommandoerne
rs.add("ServerB")rs.add("ServerC")
Replikasæt: Omkonfigurering eller fjernelse ved hjælp af rs.remove ()
For at fjerne en server fra konfigurationssættet skal vi bruge kommandoen "rs.remove"
Trin 1) Udfør først en nedlukning af den forekomst, som du vil fjerne. Man kan gøre dette ved at udstede kommandoen db.shutdownserver fra mongo shell.
Trin 2) Opret forbindelse til den primære server
Trin 3) Brug kommandoen rs.remove til at fjerne den nødvendige server fra replikasættet. Så antag, at hvis du har et replikasæt med ServerA, ServerB og ServerC, og du vil fjerne ServerC fra replikasættet, skal du udstede kommandoen
rs.remove("ServerC")
Fejlfinding af replika-sæt
Følgende trin er de samme måder, man kan foretage fejlfinding på, når der opstår problemer med brugen af replika-sæt.
- Sørg for, at alle mongo.exe-forekomster kan oprette forbindelse til hinanden. Antag, at hvis du har 3 servere kaldet ServerA, ServerB og ServerC. Fra server A skal du udstede nedenstående 2 kommandoer
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Kør kommandoen rs.status. Denne kommando giver status for replikasættet. Som standard sender hvert medlem beskeder til hinanden kaldet "hjerteslag" -meddelelser, som bare indikerer, at serveren lever og fungerer. Kommandoen "status" får status for disse meddelelser og viser, om der er problemer med nogen medlemmer i replikasættet.
- Tjek størrelsen på Oplog - Oplog er en samling i MongoDB, der gemmer historikken om skrivninger, der blev gjort til MongoDB-databasen. MongoDB bruger derefter denne Oplog til at replikere skriverierne til de andre medlemmer i replika-sættet. For at kontrollere Oplog skal du oprette forbindelse til den krævede medlemsinstans og køre kommandoen rs.printReplicationInfo. Denne kommando viser størrelsen på loggen, og hvor længe den kan indeholde transaktioner i sin logfil, før den bliver fuld.
Resumé: