MongoDB Replikering: Sådan opretter du MongoDB Replika sæt
⚡ Smart opsummering
MongoDB Replikering opbevarer identiske data på mere end én MongoDB server, beskytter mod serverfejl og muliggør belastningsbalancering. Grupperet MongoDB Instanser danner et replikasæt med én primær, der accepterer skriveoperationer, og sekundære medlemmer, der håndterer læseoperationer og failover.
Hvad er MongoDB Replikation?
Replikering omtales som processen med at sikre, at de samme data er tilgængelige på mere end én MongoDB Server. Dette er nogle gange nødvendigt for at øge datatilgængeligheden.
Fordi hvis din vigtigste MongoDB Serveren går ned af en eller anden grund, der vil ikke være adgang til dataene. Men hvis du fik dataene replikeret 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 belastningsbalancering. Hvis der er mange brugere, der kobler sig til systemet, kan brugerne i stedet for at have alle tilsluttet ét system være forbundet til flere servere, så der er en ligelig fordeling af belastningen.
In MongoDB, flere MongoDB Servere grupperes i sæt kaldet replikasæt. Replikasættet vil have en primær server, som accepterer alle skriveoperationer fra klienter. Alle andre instanser, der tilføjes til sættet efter dette, vil blive kaldt sekundære instanser, som primært kan bruges til alle læseoperationer.
Sådan opretter du et replikasæt MongoDB Tilføjelse af det første medlem ved hjælp af rs.initiate()
Som nævnt i det foregående afsnit, for at aktivere replikering, skal vi først oprette et replikasæt af MongoDB forekomster.
Lad os antage, at vi i 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. Skærmbilledet nedenfor giver et bedre indtryk af det.
Nedenfor er de trin, der skal følges for at oprette MongoDB replika sæt sammen med tilføjelsen af det første medlem til sættet.
Trin 1) Sørg for, at alle mongod.exe-instanser er tilføjet
Sørg for, at alle mongod.exe-instanser, der skal føjes til replikasættet, er installeret på forskellige servere. Dette er for at sikre, at selvom én server går ned, vil de andre være tilgængelige, og dermed andre instanser af MongoDB vil være tilgængelig.
Trin 2) Alle mongo.exe-instanser forbinder til hinanden
Sørg for, at alle mongo.exe-instanser kan oprette forbindelse til hinanden. Udsted nedenstående 2 kommandoer fra ServerA.
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
På samme måde gør du det samme fra de resterende servere.
Trin 3) Start den første mongod.exe-instans
Start den første mongod.exe-instans med replSet-indstillingen. Denne indstilling giver en gruppeping for alle servere, der vil være en del af dette replikasæt.
mongo --replSet "Replica1"
Hvor "Replica1" er navnet på dit replikasæt. Du kan vælge et hvilket som helst meningsfuldt navn til dit replikasætnavn.
Trin 4) Den første server tilføjes til replikasættet
Nu hvor den første server er føjet til replikasættet, er næste trin at starte replikasættet ved at udføre følgende kommando rs.initiate().
Trin 5) Bekræft replikasættet
Bekræft replikasættet ved at udføre kommandoen rs.conf() for at sikre, at replikasættet er konfigureret korrekt.
Replikasæt: Tilføjelse af en sekundær ved hjælp af rs.add()
De sekundære servere kan tilfø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 replikeringssættet.
Trin 1) Antag, at du har ServerA, ServerB og ServerC, som skal være en del af dit replikasæt, og ServerA er defineret som den primære server i replikasættet.
For at tilføje ServerB og ServerC til replikasættet skal du udføre 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) Først skal du lukke den instans ned, som du vil fjerne. Dette kan gøres ved at udføre kommandoen db.shutdownServer fra mongo-shell'en.
Trin 2) Opret forbindelse til den primære server.
Trin 3) Brug kommandoen rs.remove til at fjerne den ønskede server fra replikasættet. Så antag at du har et replikasæt med ServerA, ServerB og ServerC, og du vil fjerne ServerC fra replikasættet, så udfør kommandoen:
rs.remove("ServerC")
Fejlfinding af replikasæt
Følgende er de samme måder, man kan foretage fejlfinding på, når der opstår problemer med brugen af replikasæt.
- Sørg for, at alle mongo.exe-instanser kan oprette forbindelse til hinanden. Antag, at du har 3 servere kaldet ServerA, ServerB og ServerC. Fra ServerA skal du udstede nedenstående 2 kommandoer:
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
- Kør kommandoen rs.status. Denne kommando angiver status for replikasættet. Som standard sender hvert medlem beskeder til hinanden kaldet "heartbeat"-beskeder, som blot angiver, at serveren er aktiv og fungerer. Kommandoen "status" henter status for disse beskeder og viser, om der er problemer med medlemmer i replikasættet.
- Tjek størrelsen på Oploggen. Oploggen er en samling i MongoDB der gemmer historien om skriverier, der blev gjort til MongoDB databasen. MongoDB bruger derefter denne Oplog til at replikere skrivningerne til de andre medlemmer i replikasættet. For at kontrollere oploggen skal du oprette forbindelse til den påkrævede medlemsinstans og køre kommandoen rs.printReplicationInfo. Denne kommando viser størrelsen på loggen og hvor længe den kan opbevare transaktioner i sin logfil, før den bliver fuld.


