MongoDB
Mongo som en replikuppsättning
Sök…
Mongodb som en replikuppsättning
Vi skulle skapa mongodb som en replikuppsättning med tre instanser. En instans skulle vara primär och de andra två instanserna skulle vara sekundära.
För enkelhetens skull kommer jag att ha en replikuppsättning med 3 instanser av mongodb som körs på samma server och för att uppnå detta skulle alla tre mongodb-instanser köra på olika portnummer.
I produktionsmiljö där du har en dedikerad mongodb-instans som körs på en enda server kan du återanvända samma portnummer.
- Skapa datakataloger (sökväg där mongodb-data skulle lagras i en fil)
- 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)
- a. Starta den första mongod-instansen
- Öppna kommandotolken och skriv följande tryck på enter.
mongod --replSet s0 --dbpath c:\data\server1 --port 37017 --smallfiles --oplogSize 100
Ovanstående kommando associerar förekomsten av mongodb till ett replikaSet-namn "s0" och startar den första instansen av mongodb på port 37017 med oplogSize 100MB
- b. Starta på samma sätt andra instansen av Mongodb
mongod --replSet s0 --dbpath c:\data\server2 --port 37018 --smallfiles --oplogSize 100
Ovanstående kommando associerar förekomsten av mongodb till ett replikaSet-namn "s0" och startar den första instansen av mongodb på port 37018 med oplogSize 100MB
- c. Starta nu den tredje förekomsten av Mongodb
mongod --replSet s0 --dbpath c:\data\server3 --port 37019 --smallfiles --oplogSize 100
Ovanstående kommando associerar förekomsten av mongodb till ett replikaSet-namn "s0" och startar den första instansen av mongodb på port 37019 med oplogSize 100MB
När alla tre instanser startade är dessa tre instanser oberoende av varandra för närvarande. Vi måste nu gruppera dessa instanser som en replikuppsättning. Vi gör detta med hjälp av ett konfigurationsobjekt.
3.a Anslut till någon av mongod-servrarna via mongoskalet. För att göra det öppnar du kommandotolken och skriver.
mongo --port 37017
När du är ansluten till mongoskalet ska du skapa ett konfigurationsobjekt
var config = {"_id":"s0", members[]};
detta konfigurationsobjekt har 2 attribut
- _id: namnet på kopian Set ("s0")
- medlemmar: [] (medlemmar är en rad mongod-instanser. låt oss hålla detta tomt för nu, vi kommer att lägga till medlemmar via push-kommandot.
3.b För att trycka på (lägg till) mongod-instanser till medlemmaruppsättningen i konfigurationsobjektet. På mongoskalstypen
config.members.push({"_id":0,"host":"localhost:37017"});
config.members.push({"_id":1,"host":"localhost:37018"});
config.members.push({"_id":2,"host":"localhost:37019"});
Vi tilldelar varje mongod-instans en _id och en värd. _id kan vara vilket unikt nummer som helst och värden ska vara värdnamnet på servern som dess körning följt av portnumret.
- Starta konfigurationsobjektet med följande kommando i mongoskalet.
rs.initiate(config)
- Ge det några sekunder så har vi en replikuppsättning av 3 mongod-instanser som körs på servern. skriv följande kommando för att kontrollera statusen för replikuppsättningen och för att identifiera vilken som är primär och vilken som är sekundär.
rs.status();