Ricerca…


Mongodb come set di replica

Creeremo mongodb come set di repliche con 3 istanze. Un'istanza sarebbe primaria e le altre 2 sarebbero secondarie.

Per semplicità, avrò un set di repliche con 3 istanze di mongodb in esecuzione sullo stesso server e quindi per raggiungere questo obiettivo, tutte e tre le istanze di mongodb sarebbero in esecuzione su numeri di porta diversi.

Nell'ambiente di produzione in cui è presente un'istanza mongodb dedicata in esecuzione su un singolo server è possibile riutilizzare gli stessi numeri di porta.

  1. Creare directory di dati (percorso in cui i dati di mongodb verrebbero archiviati in un file)
- 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. un. Inizia la prima istanza di mongod
  • Aprire il prompt dei comandi e digitare quanto segue premere invio.
mongod --replSet s0 --dbpath c:\data\server1 --port 37017  --smallfiles --oplogSize 100

Il comando precedente associa l'istanza di mongodb a un nome di replicaSet "s0" e avvia la prima istanza di mongodb sulla porta 37017 con oplogSize 100MB

  1. b. Allo stesso modo, avvia la seconda istanza di Mongodb
mongod --replSet s0 --dbpath c:\data\server2 --port 37018  --smallfiles --oplogSize 100

Il comando precedente associa l'istanza di mongodb a un nome di replicaSet "s0" e avvia la prima istanza di mongodb sulla porta 37018 con oplogSize 100MB

  1. c. Ora avvia la terza istanza di Mongodb
mongod --replSet s0 --dbpath c:\data\server3 --port 37019  --smallfiles --oplogSize 100

Il comando precedente associa l'istanza di mongodb a un nome di replicaSet "s0" e avvia la prima istanza di mongodb sulla porta 37019 con oplogSize 100MB

Con tutte e 3 le istanze avviate, queste 3 istanze sono indipendenti l'una dall'altra al momento. Ora dovremmo raggruppare queste istanze come set di repliche. Lo facciamo con l'aiuto di un oggetto di configurazione.

3.a Collegati a uno qualsiasi dei server mongod tramite la shell mongo. Per farlo aprire il prompt dei comandi e digitare.

mongo --port 37017

Una volta connesso alla shell mongo, crea un oggetto config

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

questo oggetto di configurazione ha 2 attributi

    1. _id: il nome del set di repliche ("s0")
    2. membri: [] (i membri sono un array di istanze di mongod. lasciamo questo spazio vuoto per ora, aggiungeremo membri tramite il comando push.

3.b Per inviare (aggiungere) istanze mongod alla matrice di membri nell'oggetto config. Sul tipo di shell mongo

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

Assegniamo a ciascuna istanza mongod un _id e un host. _id può essere un numero univoco e l'host deve essere il nome host del server su cui è in esecuzione seguito dal numero di porta.

  1. Iniziare l'oggetto config con il seguente comando nella shell mongo.
rs.initiate(config)
  1. Dagli qualche secondo e abbiamo un set di repliche di 3 istanze di mongod in esecuzione sul server. digitare il seguente comando per verificare lo stato del set di repliche e identificare quale è primario e quale secondario.
rs.status();


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow