Zoeken…


Mongodb als een replicaset

We zouden mongodb maken als een replicaset met 3 exemplaren. Eén instantie is primair en de andere twee instanties zijn secundair.

Voor de eenvoud heb ik een replica ingesteld met 3 exemplaren van mongodb die op dezelfde server worden uitgevoerd en om dit te bereiken, zouden alle drie de mongodb-exemplaren op verschillende poortnummers draaien.

In een productieomgeving waarin een speciale mongodb-instantie op een enkele server wordt uitgevoerd, kunt u dezelfde poortnummers hergebruiken.

  1. Maak gegevensmappen (pad waar mongodb-gegevens in een bestand zouden worden opgeslagen)
- mkdir c:\data\server1 (datafile path for instance 1)
- mkdir c:\data\server2 (datafile path for instance 2)
- mkdir c:\data\server3 (datafile path for instance 3)
  1. een. Start de eerste mongod-instantie
  • Open de opdrachtprompt en typ het volgende druk op enter.
mongod --replSet s0 --dbpath c:\data\server1 --port 37017  --smallfiles --oplogSize 100

De bovenstaande opdracht koppelt de instantie van mongodb aan een replicaSet-naam "s0" en start de eerste instantie van mongodb op poort 37017 met oplogSize 100MB

  1. b. Start op dezelfde manier het tweede exemplaar van Mongodb
mongod --replSet s0 --dbpath c:\data\server2 --port 37018  --smallfiles --oplogSize 100

De bovenstaande opdracht koppelt de instantie van mongodb aan een replicaSet-naam "s0" en start de eerste instantie van mongodb op poort 37018 met oplogSize 100MB

  1. c. Start nu het derde exemplaar van Mongodb
mongod --replSet s0 --dbpath c:\data\server3 --port 37019  --smallfiles --oplogSize 100

De bovenstaande opdracht koppelt de instantie van mongodb aan een replicaSet-naam "s0" en start de eerste instantie van mongodb op poort 37019 met oplogSize 100MB

Met alle 3 instanties gestart, zijn deze 3 instanties momenteel onafhankelijk van elkaar. We zouden deze instanties nu moeten groeperen als een replicaset. We doen dit met behulp van een configuratieobject.

3.a Maak verbinding met een van de mongod-servers via de mongo-shell. Open hiervoor de opdrachtprompt en typ.

mongo --port 37017

Maak een configuratieobject nadat u bent verbonden met de mongo-shell

   var config = {"_id":"s0", members[]};

dit configuratieobject heeft 2 attributen

    1. _id: de naam van de replicaset ("s0")
    2. leden: [] (leden is een reeks mongod-instanties. laten we dit voorlopig leeg laten, we zullen leden toevoegen via het pushcommando.

3.b Om mongod-instanties naar de ledenarray in het configuratieobject te duwen (toevoegen). Op het mongoschelptype

 config.members.push({"_id":0,"host":"localhost:37017"});
 config.members.push({"_id":1,"host":"localhost:37018"});
 config.members.push({"_id":2,"host":"localhost:37019"});

We wijzen elke mongod-instantie een _id en een host toe. _id kan elk uniek nummer zijn en de host moet de hostnaam zijn van de server waarop deze wordt uitgevoerd, gevolgd door het poortnummer.

  1. Start het configuratieobject met de volgende opdracht in de mongo-shell.
rs.initiate(config)
  1. Geef het een paar seconden en we hebben een replicaset van 3 mongod-exemplaren die op de server worden uitgevoerd. typ de volgende opdracht om de status van de replicaset te controleren en om te bepalen welke primair en welke secundair is.
rs.status();


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow