MongoDB Replicatie: hoe te creëren MongoDB Replica set

⚡ Slimme samenvatting

MongoDB Replicatie zorgt ervoor dat identieke gegevens op meer dan één exemplaar bewaard blijven. MongoDB server, die bescherming biedt tegen serveruitval en load balancing mogelijk maakt. Gegroepeerd MongoDB De instanties vormen een replica-set, waarbij één primaire instantie schrijfbewerkingen accepteert en secundaire leden leesbewerkingen en failover afhandelen.

  • Kernbegrip: Replicatie kopieert dezelfde gegevens naar meerdere servers, zodat de informatie beschikbaar blijft wanneer de primaire server uitvalt.
  • ???? Primair en secundair onderwijs: Een replica-set bestaat uit één primair lid dat schrijfbewerkingen accepteert en secundaire leden die leesbewerkingen uitvoeren.
  • 🚀 Setcreatie: De opdracht rs.initiate() start een replicaset nadat de eerste mongod-instantie is gestart met de optie replSet.
  • Leden toevoegen: Met het commando rs.add() worden secundaire servers toegevoegd, terwijl rs.remove() een lid uit de configuratie verwijdert.
  • 🔧 Probleemoplossen: De commando's rs.status() en rs.printReplicationInfo() tonen de status van de heartbeat en de grootte van het Oplog-bestand voor diagnosedoeleinden.

MongoDB Replicatie: hoe te creëren MongoDB Replica set

Wat is MongoDB Replicatie?

Replicatie wordt omschreven als het proces waarbij ervoor wordt gezorgd dat dezelfde gegevens op meer dan één systeem beschikbaar zijn. MongoDB Server. Dit is soms nodig om de beschikbaarheid van gegevens te vergroten.

Want als je hoofd MongoDB De server valt om welke reden dan ook uit, er is geen toegang tot de gegevens. Maar als u de gegevens met regelmatige tussenpozen naar een andere server laat repliceren, heeft u toegang tot de gegevens vanaf een andere server, zelfs als de primaire server uitvalt.

Een ander doel van replicatie is de mogelijkheid van taakverdeling. Als er veel gebruikers verbinding maken met het systeem, kunnen gebruikers in plaats van dat iedereen verbinding maakt met één systeem, met meerdere servers worden verbonden, zodat de belasting gelijkmatig wordt verdeeld.

In MongoDB, meerdere MongoDB Servers worden gegroepeerd in sets die replica-sets worden genoemd. Elke replica-set heeft een primaire server die alle schrijfbewerkingen van clients afhandelt. Alle andere instanties die na deze primaire server aan de set worden toegevoegd, worden secundaire instanties genoemd en kunnen primair worden gebruikt voor alle leesbewerkingen.

Hoe u een replicaset kunt maken MongoDB Het eerste lid toevoegen met rs.initiate()

Zoals vermeld in de vorige sectie, moeten we, om replicatie mogelijk te maken, eerst een replicaset maken van MongoDB instanties.

Laten we voor ons voorbeeld aannemen dat we 3 servers hebben, genaamd ServerA, ServerB en ServerC. In deze configuratie is ServerA onze primaire server en ServerB en ServerC onze secundaire servers. De onderstaande schermafbeelding geeft dit beter weer.

Maak een replicaset in MongoDB

Hieronder staan ​​de stappen die moeten worden gevolgd voor het maken van de MongoDB replicaset samen met de toevoeging van het eerste lid aan de set.

Stap 1) Zorg ervoor dat alle mongod.exe-instanties zijn toegevoegd.

Zorg ervoor dat alle mongod.exe-instanties die aan de replicaset worden toegevoegd, op verschillende servers zijn geïnstalleerd. Dit zorgt ervoor dat, zelfs als één server uitvalt, de andere servers beschikbaar blijven en dus ook andere instanties van mongod.exe. MongoDB zal beschikbaar zijn.

Stap 2) Alle mongo.exe-instanties maken verbinding met elkaar.

Zorg ervoor dat alle exemplaren van mongo.exe met elkaar kunnen verbinden. Geef vanaf ServerA de onderstaande twee opdrachten.

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

Doe hetzelfde vanaf de overige servers.

Stap 3) Start de eerste mongod.exe-instantie

Start de eerste mongod.exe-instantie met de replSet-optie. Deze optie biedt een groepping voor alle servers die deel uitmaken van deze replica-set.

mongo --replSet "Replica1"

Waarbij “Replica1” de naam is van uw replicaset. U kunt elke betekenisvolle naam kiezen voor de naam van uw replicaset.

Stap 4) De eerste server wordt toegevoegd aan de replicaset.

Nu de eerste server aan de replicaset is toegevoegd, is de volgende stap het initialiseren van de replicaset door het volgende commando uit te voeren: rs.initiate().

Stap 5) Controleer de replica-set

Controleer de replicaset door het commando rs.conf() uit te voeren om er zeker van te zijn dat de replicaset correct is ingesteld.

Replicaset: een secundaire toevoegen met rs.add()

De secundaire servers kunnen aan de replicaset worden toegevoegd door simpelweg de opdracht rs.add te gebruiken. Met deze opdracht wordt de naam van de secundaire servers overgenomen en worden de servers aan de replicatieset toegevoegd.

Stap 1) Stel dat u ServerA, ServerB en ServerC hebt, die deel moeten uitmaken van uw replica-set, en ServerA is gedefinieerd als de primaire server in de replica-set.

Om ServerB en ServerC aan de replicaset toe te voegen, gebruikt u de volgende opdrachten:

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

Replicaset: opnieuw configureren of verwijderen met rs.remove()

Om een ​​server uit de configuratieset te verwijderen, moeten we het commando "rs.remove" gebruiken.

Stap 1) Sluit eerst de instantie af die u wilt verwijderen. Dit kunt u doen door het commando `db.shutdownServer` uit te voeren in de MongoDB-shell.

Stap 2) Maak verbinding met de primaire server.

Stap 3) Gebruik de opdracht rs.remove om de gewenste server uit de replicaset te verwijderen. Stel dat u een replicaset hebt met ServerA, ServerB en ServerC, en u wilt ServerC uit de replicaset verwijderen, dan voert u de volgende opdracht uit:

rs.remove("ServerC")

Problemen met replicasets oplossen

Hieronder volgen dezelfde methoden om problemen op te lossen die zich kunnen voordoen bij het gebruik van replica sets.

  1. Zorg ervoor dat alle mongo.exe-instanties met elkaar verbinding kunnen maken. Stel dat u 3 servers hebt, genaamd ServerA, ServerB en ServerC. Voer vanaf ServerA de volgende 2 opdrachten uit:
    mongo --host ServerB --port 27017
    mongo --host ServerC --port 27017
  2. Voer de opdracht `rs.status` uit. Deze opdracht geeft de status van de replicaset weer. Standaard stuurt elk lid berichten naar elkaar, zogenaamde "heartbeat"-berichten, die alleen aangeven dat de server actief is en werkt. De opdracht `status` haalt de status van deze berichten op en laat zien of er problemen zijn met leden van de replicaset.
  3. Controleer de grootte van de Oplog. De Oplog is een verzameling in MongoDB waarin de geschiedenis wordt opgeslagen van schrijfbewerkingen die zijn uitgevoerd naar de MongoDB database. MongoDB gebruikt vervolgens deze Oplog om de schrijfbewerkingen naar de andere leden in de replicaset te repliceren. Om de Oplog te controleren, maakt u verbinding met de vereiste ledeninstantie en voert u de opdracht rs.printReplicationInfo uit. Deze opdracht toont de grootte van het logbestand en hoe lang het transacties in het logbestand kan bewaren voordat het vol raakt.

Veelgestelde vragen

Ja. AI-assistenten kunnen de mongod-opstartopties, de rs.initiate()-configuratie en de rs.add()-opdrachten voor een replicaset genereren. Controleer altijd de hostnamen, poorten en prioriteiten van de leden voordat u de configuratie toepast op productieservers.

Ja. Door AI aangedreven monitoringtools kunnen rs.status() en Oplog-statistieken uitlezen om secundaire servers te signaleren die achterlopen op de primaire server. Ze kunnen mogelijke oorzaken suggereren, zoals netwerklatentie of trage schijven, maar technici moeten dit bevestigen voordat ze actie ondernemen.

MongoDB Het wordt aanbevolen om een ​​oneven aantal stemgerechtigde leden te gebruiken, meestal drie, zodat er bij verkiezingen een meerderheid kan worden behaald. Als slechts twee dataknooppunten betaalbaar zijn, kan een arbiter worden toegevoegd om gelijkstanden te doorbreken zonder gegevens op te slaan.

Wanneer de primaire kandidaat niet meer bereikbaar is, houden de overgebleven leden een verkiezing en bevorderen ze automatisch een geschikte tweede kandidaat tot primaire kandidaat. Schrijf een overzicht van de werkzaamheden zodra een nieuwe primaire kandidaat is gekozen, houd...ping De applicatie is beschikbaar met minimale uitvaltijd.

Vat dit bericht samen met: