我一直在用mongodb和分片进行一些测试,在某些时候我试图将新的配置服务器添加到我的mongos路由器(当时,我只使用一个配置服务器)。但我找不到有关如何执行此操作的任何信息。
有人试图做这样的事吗?
答案 0 :(得分:5)
不幸的是,您需要关闭整个系统。
关闭所有进程(mongod,mongos,config server)。
将数据子目录(dbpath树)从配置服务器复制到新的配置服务器。
启动配置服务器。
使用新的--configdb参数重新启动mongos进程。
重新启动mongod进程。
来自:http://www.mongodb.org/display/DOCS/Changing+Config+Servers
答案 1 :(得分:2)
使用DNS CNAMES
当您在/etc/mongos.conf中设置多个配置服务器时,确保在设置副本集和/或设置副本集时使用DNS条目或至少/ etc / hosts条目用于所有mongod和mongo配置服务器分片。
e.g。 AWS上常见的缺陷是只使用EC2实例的私有DNS名称,但这些可能会随着时间的推移而发生变化......当发生这种情况时,您需要关闭整个mongodb系统,这可能会非常痛苦。它正在生产中。
答案 2 :(得分:1)
Configure Sharding和Sample Configuration Session页面似乎有您想要的内容。
您必须拥有1或3个配置服务器;其他任何东西都不会按预期工作。
您需要将原始配置服务器中的内容转储并恢复为2 将新配置服务器添加到mongos的--configdb之前。
相关部分是:
现在你需要一个配置服务器和mongos:
`$ mkdir / data / db / config
$ ./mongod --configsvr --dbpath / data / db / config --port 20000> /tmp/configdb.log&
$ cat /tmp/configdb.log
$ ./mongos --configdb localhost:20000> /tmp/mongos.log&
$ cat /tmp/mongos.log`
mongos不需要数据目录,它从配置服务器获取其信息。