mongodb 在分片机中复制

mongodb replication in sharded machine

我在一台机器上用三个不同的端口(比如 27018[master]、27019、27020)完成了复制。我也在一台机器上用两个不同的端口(比如 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("ComputerName:27018")
  7. rs.add("ComputerName:27020")

第 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,host: “127.0.0.1:27025”}]})

当我 运行 此代码时出现错误:

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

剩下的步骤我无法执行。知道如何解决这个问题吗?

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

配置服务器及其复制

  • 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
  • mongomachineip:27017
  • config= {_id:"rs2", 成员:[{ _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(配置)
  • 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, host:'machineip:27021'},{_id:1,host:'machineip:27022'},{ _id:2,主机:'machineip:27023'}]}
  • rs.initiate(配置)
  • rs.status()

Shard2 的复制配置

  • mongomachineip:27024
  • config= {_id:"rs0", 成员:[{ _id:0, host:'machineip:27024''},{_id:1,host:'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()

希望这会有所帮助:-)