目前有已搭好的mongodb 分片集群 状况为:三台 服务器 每台上运行 一个路由进程(mongos) 一个config_sever 和三个分片,其中三台服务器上的每一个相同shard搭建了副本集 栗子:
config = { _id:"shard1", members:[
{_id:0,host:"192.168.30.136:22001"},
{_id:1,host:"192.168.30.137:22001"},
{_id:2,host:"192.168.30.138:22001",arbiterOnly:true}
]
}
--集群架构如下 根据 http://www.lanceyan.com/tech/arch/mongodb_shard1.html 搭建
sever1 server2 sever3
mongos mongos mongos
config_sever config_sever config_sever
shard1 shard1 shard1
shard2 shard2 shard2
shard3 shard3 shard3
现在 我想要把mongos(路由) 和config 分离出来 成为三台单独的服务器 即 每台上面 一个mongos 一个config 原本的三台作为分片 重新接入 新的服务器
问题一: 新的在串联新路由和已有的分片时 出现错误 我只能串联 三台服务器中的一个副本集,例如我串联了shard1 那么串联shard2时就会出现
"errmsg" : "can't add shard 'shard2/172.31.6.3:22002,172.31.14.250:22002,172.31.14.252:22002' because a local database 'lycamplus' exists in another shard1"
问题二: 在上述情况下 我有选择了拷贝 原有的config_server 文件 到新的config 服务器 这样我就不用去串联副本集了 但是却出现了字符串冲突的问题 即 在配置文件中 mongos 的新旧IP冲突
好吧今天一天都躺 这两坑上了 ---mongodb 半路出家 如果出现常识性问题 高手请见谅