MongoDB - 在生产中添加新的配置服务器

时间:2011-08-12 00:03:21

标签: config mongodb sharding

我一直在用mongodb和分片进行一些测试,在某些时候我试图将新的配置服务器添加到我的mongos路由器(当时,我只使用一个配置服务器)。但我找不到有关如何执行此操作的任何信息。

有人试图做这样的事吗?

3 个答案:

答案 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 ShardingSample 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不需要数据目录,它从配置服务器获取其信息。