MongoDB Replicatie: hoe te creëren MongoDB Replica set

Wat is MongoDB Replicatie?

Met replicatie wordt verwezen naar het proces waarbij ervoor wordt gezorgd dat dezelfde gegevens beschikbaar zijn op meer dan één Mongo DB-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. De Replica set zal een primaire server hebben die alle schrijfbewerkingen van clients zal accepteren. Alle andere instances die hierna aan de set worden toegevoegd, zullen de secundaire instances worden genoemd die primair kunnen 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 aannemen dat we voor ons voorbeeld drie servers hebben, genaamd ServerA, ServerB en ServerC. In deze configuratie zal ServerA onze primaire server zijn en ServerB en ServerC onze secundaire servers. Onderstaande schermafbeelding geeft er een beter idee van.

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 exemplaren van mongod.exe zijn toegevoegd

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

Stap 2) Alle exemplaren van mongo.exe 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 het eerste exemplaar van mongod.exe

Start het eerste exemplaar van mongod.exe met de optie replSet. Deze optie biedt een groepering voor alle servers die deel zullen uitmaken van deze replicaset.

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 initiëren van de replicaset door de volgende opdracht uit te voeren: rs.initiate().

Stap 5) Controleer de replicaset

Controleer de replicaset door de opdracht rs.conf() uit te voeren om er zeker van te zijn dat de replica 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 replicaset en dat ServerA wordt gedefinieerd als de primaire server in de replicaset.

Om ServerB en ServerC aan de replicaset toe te voegen, geeft u de opdrachten op

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

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

Om een ​​server uit de configuratieset te verwijderen, moeten we de opdracht “rs.remove” gebruiken

Stap 1) Voer eerst een afsluiting uit van de instantie die u wilt verwijderen. U kunt dit doen door de opdracht db.shutdownserver vanuit de mongo-shell uit te voeren.

Stap 2) Maak verbinding met de primaire server

Stap 3) Gebruik de opdracht rs.remove om de vereiste server uit de replicaset te verwijderen. Dus stel dat u een replicaset hebt met ServerA, ServerB en ServerC en u ServerC uit de replicaset wilt verwijderen, geef dan de opdracht

rs.remove("ServerC")

Problemen met replicasets oplossen

De volgende stappen zijn dezelfde manieren waarop u problemen kunt oplossen wanneer u problemen ondervindt bij het gebruik van replicasets.

  1. Zorg ervoor dat alle exemplaren van mongo.exe met elkaar kunnen verbinden. Stel dat u 3 servers heeft met de namen ServerA, ServerB en ServerC. Geef vanaf server A de onderstaande twee opdrachten
mongo –host ServerB –port 27017
mongo –host ServerC –port 27017
  1. Voer de opdracht rs.status uit. Deze opdracht geeft de status van de replicaset weer. Standaard stuurt elk lid berichten naar elkaar, genaamd “heartbeat”-berichten, wat alleen maar aangeeft dat de server leeft en werkt. Met de opdracht “status” wordt de status van deze berichten opgehaald en wordt weergegeven of er problemen zijn met leden in de replicaset.
  2. 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.

Samenvatting

Replicatie in MongoDB wordt verwezen naar het proces om ervoor te zorgen dat dezelfde gegevens beschikbaar zijn op meer dan één Mongo DB-server. Veel leden (MongoDB instances) kunnen afhankelijk van de vereisten aan de replicaset worden toegevoegd.