MongoDB Replica Set Tutorial: Step by Step Replication Eksempel

Innholdsfortegnelse:

Anonim

Hva er MongoDB-replikering?

Replikering henvises til prosessen for å sikre at de samme dataene er tilgjengelige på mer enn en Mongo DB-server. Dette er noen ganger nødvendig for å øke datatilgjengeligheten.

For hvis MongoDB-serveren din går ned av en eller annen grunn, vil det ikke være tilgang til dataene. Men hvis du hadde replikert dataene til en annen server med jevne mellomrom, vil du kunne få tilgang til dataene fra en annen server selv om den primære serveren mislykkes.

Et annet formål med replikering er muligheten for lastbalansering. Hvis det er mange brukere som kobler seg til systemet, kan brukerne kobles til flere servere i stedet for å få alle til å koble til ett system, slik at det er en jevn fordeling av belastningen.

I MongoDB er flere MongDB-servere gruppert i sett som kalles replikasett. Replikasettet vil ha en primær server som aksepterer all skriveoperasjon fra klienter. Alle andre forekomster som legges til settet etter dette, vil bli kalt sekundære forekomster som primært kan brukes til alle leseoperasjoner.

I denne opplæringen lærer du -

  • Replikasett: Legge til det første medlemmet ved hjelp av rs.initiate ()
  • Replikasett: Legge til en sekundær ved hjelp av rs.add ()
  • Replikasett: Konfigurere eller fjerne på nytt ved hjelp av rs.remove ()
  • Feilsøking av replika-sett

Replikasett: Legge til det første medlemmet ved hjelp av rs.initiate ()

Som nevnt i forrige avsnitt, for å aktivere replikering, må vi først lage et replikasett av MongoDB-forekomster.

La oss anta at vi for eksempel har 3 servere kalt ServerA, ServerB og ServerC. I denne konfigurasjonen vil ServerA være vår primære server og ServerB og ServerC vil være våre sekundære servere. Skjermbildet nedenfor vil gi en bedre ide om det.

Nedenfor er trinnene som må følges for å lage replikasettet sammen med tillegg av det første medlemmet til settet.

Trinn 1) Forsikre deg om at alle mongod.exe-forekomster som vil bli lagt til replikasettet er installert på forskjellige servere. Dette er for å sikre at selv om en server går ned, vil de andre være tilgjengelige og dermed andre forekomster av MongoDB vil være tilgjengelig.

Trinn 2) Forsikre deg om at alle mongo.exe-forekomster kan koble seg til hverandre. Fra ServerA utgir du de to kommandoene nedenfor

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

På samme måte gjør du det samme fra de gjenværende serverne.

Trinn 3) Start den første mongod.exe-forekomsten med replSet-alternativet. Dette alternativet gir en gruppering for alle servere som vil være en del av dette replikasettet.

mongo -replSet "Replica1"

Hvor "Replica1" er navnet på replika-settet ditt. Du kan velge et hvilket som helst meningsfylt navn for replikasettet.

Trinn 4) Nå som den første serveren er lagt til replikasettet, er neste trinn å starte replikasettet ved å utstede følgende kommando rs.initiate ()

Trinn 5) Bekreft replikasettet ved å utstede kommandoen rs.conf () for å sikre at replikaen er riktig konfigurert

Replikasett: Legge til en sekundær ved hjelp av rs.add ()

De sekundære serverne kan legges til replikasettet ved å bare bruke kommandoen rs.add. Denne kommandoen tar navnet på de sekundære serverne og legger serverne til replikeringssettet.

Trinn 1) Anta at hvis du har ServerA, ServerB og ServerC, som kreves for å være en del av replikasettet ditt, og ServerA, er definert som den primære serveren i replikasettet.

For å legge til ServerB og ServerC til replikasettet, utsted kommandoene

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

Replikasett: Konfigurere eller fjerne på nytt ved hjelp av rs.remove ()

For å fjerne en server fra konfigurasjonssettet, må vi bruke kommandoen "rs.remove"

Trinn 1) Utfør først en nedleggelse av forekomsten du vil fjerne. Man kan gjøre dette ved å utstede kommandoen db.shutdownserver fra mongo-skallet.

Trinn 2) Koble til primærserveren

Trinn 3) Bruk kommandoen rs.remove for å fjerne den nødvendige serveren fra replikasettet. Så anta at hvis du har et replikksett med ServerA, ServerB og ServerC, og du vil fjerne ServerC fra replikasettet, utsteder du kommandoen

rs.remove("ServerC")

Feilsøking av replika-sett

Følgende trinn er de samme måtene man kan feilsøke når det oppstår problemer med bruken av replika-sett.

  1. Forsikre deg om at alle mongo.exe-forekomster kan koble seg til hverandre. Anta at hvis du har 3 servere kalt ServerA, ServerB og ServerC. Fra server A utgir du de to kommandoene nedenfor
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
  1. Kjør rs.status-kommandoen. Denne kommandoen gir status for replikasettet. Som standard vil hvert medlem sende meldinger til hverandre kalt "hjerteslag" -meldinger som bare indikerer at serveren lever og fungerer. Kommandoen "status" får status for disse meldingene og viser om det er noen problemer med noen medlemmer i replikasettet.
  2. Sjekk størrelsen på Oplog - Oplog er en samling i MongoDB som lagrer historikken til skriver som ble gjort til MongoDB-databasen. MongoDB bruker deretter denne Oplog til å replikere skrivene til de andre medlemmene i replika-settet. For å sjekke Oplog, koble til den nødvendige medlemsforekomsten og kjør kommandoen rs.printReplicationInfo. Denne kommandoen viser størrelsen på loggen og hvor lenge den kan holde transaksjoner i loggfilen før den blir full.

Sammendrag:

  • Replikering henvises til prosessen for å sikre at de samme dataene er tilgjengelige på mer enn en Mongo DB-server. Mange medlemmer (MongoDB-forekomster) kan legges til replikasettet, avhengig av kravene.