0
votes

I have done Replication in one single machine with three different port(Say 27018[master],27019,27020). Also I have done Sharding in one single machine with two different port(Say 27021,27022).

Now I have to implement replication for the sharded machine port. I need to implement replication for 27021 and 27022. How can I do this? Please help me to resolve this issue.

Steps followed :

Part 1: Set up 3 port for replication

  1. mongod --replSet rs0
  2. mongod --port 27018 --dbpath F:\Data1 --replSet rs0
  3. mongod --port 27020 --dbpath F:\Data2 --replSet rs0
  4. mongo localhost:27017
  5. rs.initiate()
  6. rs.add("ComputerName:27018")
  7. rs.add("ComputerName:27020")

Part 2: Now set up for sharding

  1. mongod --configsvr --replSet configReplSet
  2. mongod --port 27021 --dbpath F:\Data4 --replSet configReplSet
  3. mongod --port 27025 --dbpath F:\Data5 --replSet configReplSet
  4. mongo 127.0.0.1:27019
  5. rs.initiate({_id:"configReplSet",configsvr:true,members:[{_id: 0,host: "127.0.0.1:27021"},{_id:1,host: "127.0.0.1:27025"}]})

When I run this code I am getting an error:

{
    "ok" : 0,
    "errmsg" : "No host described in new configuration 1 for replica set configReplSet maps to this node",
    "code" : 93
}

So remaining steps I am not able to execute. Any idea how can I overcome this issue?

1
Can you add your tries?love gupta
@lovegupta I tried this link docs.mongodb.com/v3.2/tutorial/… But the issue I faced in rs.initiate( { _id: "configReplSet", configsvr: true, members: [ { _id: 0, host: "mongodb07.example.net:27019" }, { _id: 1, host: "mongodb08.example.net:27019" }, { _id: 2, host: "mongodb09.example.net:27019" } ] } ) and mongos --configdb configReplSet/mongodb07.example.net:27019,mongodb08.example.net:27019,mongodb09.example.net:27019 --chunkSize 1 The sharding environment is not able to set..Vinitha
Please let me know if I need to provide my tries step wise step.Vinitha
@Vinitha Yes, it would be useful if you could list the steps you've tried. Remember that you are encouraged to edit your question to improve it as much as possible.Vince Bowdren
@Vinitha can you just help me with the mongo version and your machine config. I am specifically looking for 32 bit/64 bit and koee interested in the storage engine you are using. I think i got the issue.love gupta

1 Answers

0
votes

Got one method to achieve my requirement. Steps as follows

Config Server and its replication

  • mongod --configsvr --dbpath F:\Data1\configdb\ --replSet rs2 --port 27017
  • mongod --configsvr --dbpath F:\Data2\configdb\ --replSet rs2 --port 27018
  • mongod --configsvr --dbpath F:\Data3\configdb\ --replSet rs2 --port 27019
  • mongo machineip:27017
  • config= {_id:"rs2", members :[{ _id:0, host:'10.18.0.225:27017'}, {_id:1, host:'10.18.0.225:27018'}, {_id:2, host:'10.18.0.225:27019'}]}
  • rs.initiate (config)
  • rs.status()

Routing Server

  • mongos -configdb machineip:27017 --port 27020

Shard1 and its replication

  • mongod --dbpath F:\Data4\db\ --shardsvr --replSet rs0 --port 27021
  • mongod --dbpath F:\Data5\db\ --shardsvr --replSet rs0 --port 27022
  • mongod --dbpath F:\Data6\db\ --shardsvr --replSet rs0 --port 27023

Shard2 and its replication

  • mongod --dbpath F:\Data7\db\ --shardsvr --replSet rs1 --port 27024
  • mongod --dbpath F:\Data8\db\ --shardsvr --replSet rs1 --port 27025
  • mongod --dbpath F:\Data9\db\ --shardsvr --replSet rs1 --port 27026

Replication configuration for Shard1

  • mongo machineip:27021
  • config= {_id:"rs0", members :[{ _id:0, host:'machineip:27021'},{_id:1,host:'machineip:27022'},{_id:2,host:'machineip:27023'}]}
  • rs.initiate(config)
  • rs.status()

Replication configuration for Shard2

  • mongo machineip:27024
  • config= {_id:"rs0", members :[{ _id:0, host:'machineip:27024''},{_id:1,host:'machineip:27025''},{_id:2,host:'machineip:27026''}]}
  • rs.initiate(config)
  • rs.status()

Sharding Configuration in route server

  • sh.status()
  • sh.addShard ("rs0/machineip:27021")
  • sh.addShard ("rs0/machineip:27024")
  • sh.status()
  • sh.enableSharding ("test")
  • sh.shardCollection ("test.stud", {id: 1})
  • sh.status()

Hope this will help :-)