mongodb 在分片机中复制
mongodb replication in sharded machine
我在一台机器上用三个不同的端口(比如 27018[master]、27019、27020)完成了复制。我也在一台机器上用两个不同的端口(比如 27021,27022)完成了分片。
现在我必须为分片机端口实现复制。我需要为 27021 和 27022 实施复制。我该怎么做?请帮我解决这个问题。
遵循的步骤:
第 1 部分:为复制设置 3 个端口
- mongod --replSet rs0
- mongod --port 27018 --dbpath F:\Data1 --replSet rs0
- mongod --port 27020 --dbpath F:\Data2 --replSet rs0
- mongo localhost:27017
- rs.initiate()
- rs.add("ComputerName:27018")
- rs.add("ComputerName:27020")
第 2 部分:现在设置分片
- mongod --configsvr --replSet configReplSet
- mongod --port 27021 --dbpath F:\Data4 --replSet configReplSet
- mongod --port 27025 --dbpath F:\Data5 --replSet configReplSet
- mongo 127.0.0.1:27019
- 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()
希望这会有所帮助:-)
我在一台机器上用三个不同的端口(比如 27018[master]、27019、27020)完成了复制。我也在一台机器上用两个不同的端口(比如 27021,27022)完成了分片。
现在我必须为分片机端口实现复制。我需要为 27021 和 27022 实施复制。我该怎么做?请帮我解决这个问题。
遵循的步骤:
第 1 部分:为复制设置 3 个端口
- mongod --replSet rs0
- mongod --port 27018 --dbpath F:\Data1 --replSet rs0
- mongod --port 27020 --dbpath F:\Data2 --replSet rs0
- mongo localhost:27017
- rs.initiate()
- rs.add("ComputerName:27018")
- rs.add("ComputerName:27020")
第 2 部分:现在设置分片
- mongod --configsvr --replSet configReplSet
- mongod --port 27021 --dbpath F:\Data4 --replSet configReplSet
- mongod --port 27025 --dbpath F:\Data5 --replSet configReplSet
- mongo 127.0.0.1:27019
- 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()
希望这会有所帮助:-)