分片机

时间:2017-04-04 10:45:08

标签: mongodb replication sharding

我在一台具有三个不同端口的机器上完成了复制(Say 27018 [master],27019,27020)。我也在一台机器上完成了Sharding,有两个不同的端口(Say 27021,27022)。

现在我必须为分片机器端口实现复制。我需要为27021和27022实现复制。我该怎么做?请帮我解决这个问题。

遵循的步骤:

第1部分:设置3个端口进行复制

  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("计算机名:27018&#34)
  7. rs.add("计算机名:27020&#34)
  8. 第2部分:现在设置为分片

    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,主持人:" 127.0.0.1:27025"}]})
    6. 当我运行此代码时出现错误:

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

      所以剩下的步骤我无法执行。我知道如何克服这个问题?

1 个答案:

答案 0 :(得分:0)

有一种方法可以达到我的要求。 步骤如下

配置服务器及其复制

  • 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",成员:[{_ id:0,主持人:' 10.18.0.225:27017'},{_ id:1,主持人:&# 39; 10.18.0.225:27018'},{_ id:2,主持人:' 10.18.0.225:27019'}}}
  • rs.initiate(config)
  • rs.status()

路由服务器

  • mongos -configdb machineip:27017 --port 27020

Shard1及其复制

  • 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及其复制

  • 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

Shard1的复制配置

  • mongo machineip:27021
  • config = {_ id:" rs0",成员:[{_ id:0,主持人:' machineip:27021'},{_ id:1,主持人:' machineip:27022'},{_ ID:2,主机:' machineip:27023'}]}
  • rs.initiate(配置)
  • rs.status()

Shard2的复制配置

  • mongo machineip:27024
  • config = {_ id:" rs0",成员:[{_ id:0,主持人:' machineip:27024''},{_ id:1,主持人: ' machineip:27025''},{_ ID:2,主机:' machineip:27026''}]}
  • rs.initiate(配置)
  • rs.status()

路由服务器中的分片配置

  • 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()

希望这会有所帮助:-)