2011-08-12 35 views
2

我一直在用mongodb和分片进行一些测试,并且在某些时候我试图向我的mongos路由器添加新的配置服务器(当时,我只用一台配置服务器)。但我找不到有关如何做到这一点的任何信息。MongoDB - 在生产中添加新的配置服务器

有没有人试图做这样的事情?

回答

5

不幸的是,您将需要关闭整个系统。

关闭所有进程(mongod,mongos,config server)。

将数据子目录(dbpath树)从配置服务器复制到新的配置服务器。

启动配置服务器。

使用新的--configdb参数重新启动mongos进程。

重新启动mongod进程。

来源:http://www.mongodb.org/display/DOCS/Changing+Config+Servers

+2

你不能关闭只有一个配置服务器(渲染其他人只读),然后从那里复制? – Zeki

1

Configure ShardingSample Configuration Session页面似乎有你在找什么。

您必须有1或3个配置服务器;其他任何东西都无法按预期工作。

在将它们添加到mongos的--configdb之前,您需要将内容从原始配置服务器转储并恢复到新配置服务器。

相关的部分是:

现在,你需要配置服务器和mongos:

`$的mkdir /数据/ DB /配置

$ ./mongod --configsvr - DBPATH /数据/分贝/配置--port 20000> /tmp/configdb.log &

$猫/tmp/configdb.log

$ ./mongos --configdb本地主机:20000> /tmp/mongos.log &

$猫/tmp/mongos.log`

mongos不需要一个数据目录,它从获取信息配置服务器。

+0

我想我没有让自己很清楚。我在生产中运行一个configdb,我想在不停止我的mongos的情况下添加更多两个,因为我正在生产。得到它了? ;) –

2

使用DNS CNAMES

确保使用DNS条目,或者至少在/ etc/hosts中所有的mongod条目和蒙戈配置服务器,当你设置多个配置服务器中/etc/mongos.conf,当你设置副本集和/或分片时。

例如AWS上的一个常见错误就是只使用EC2实例的私有DNS名称,但这些名称可能会随着时间而改变......当发生这种情况时,您需要关闭整个MongoDB系统,这可能会非常痛苦它正在生产中。

+0

在那里,下来,它是如此糟糕,我们称之为“黑色星期六”... +1有一个私人的DNS例如“蒙戈 - config1.internal.bla” – bobmarksie

相关问题