目前有已搭好的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冲突。
请问各位朋友如何解决?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。