2011-08-12 48 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

相關問題