我一直在用mongodb和分片進行一些測試,並且在某些時候我試圖向我的mongos路由器添加新的配置服務器(當時,我只用一臺配置服務器)。但我找不到有關如何做到這一點的任何信息。MongoDB - 在生產中添加新的配置服務器
有沒有人試圖做這樣的事情?
我一直在用mongodb和分片進行一些測試,並且在某些時候我試圖向我的mongos路由器添加新的配置服務器(當時,我只用一臺配置服務器)。但我找不到有關如何做到這一點的任何信息。MongoDB - 在生產中添加新的配置服務器
有沒有人試圖做這樣的事情?
不幸的是,您將需要關閉整個系統。
關閉所有進程(mongod,mongos,config server)。
將數據子目錄(dbpath樹)從配置服務器複製到新的配置服務器。
啓動配置服務器。
使用新的--configdb參數重新啓動mongos進程。
重新啓動mongod進程。
來源:http://www.mongodb.org/display/DOCS/Changing+Config+Servers
該Configure Sharding和Sample 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不需要一個數據目錄,它從獲取信息配置服務器。
我想我沒有讓自己很清楚。我在生產中運行一個configdb,我想在不停止我的mongos的情況下添加更多兩個,因爲我正在生產。得到它了? ;) –
使用DNS CNAMES
確保使用DNS條目,或者至少在/ etc/hosts中所有的mongod條目和蒙戈配置服務器,當你設置多個配置服務器中/etc/mongos.conf,當你設置副本集和/或分片時。
例如AWS上的一個常見錯誤就是隻使用EC2實例的私有DNS名稱,但這些名稱可能會隨着時間而改變......當發生這種情況時,您需要關閉整個MongoDB系統,這可能會非常痛苦它正在生產中。
在那裏,下來,它是如此糟糕,我們稱之爲「黑色星期六」... +1有一個私人的DNS例如「蒙戈 - config1.internal.bla」 – bobmarksie
你不能關閉只有一個配置服務器(渲染其他人只讀),然後從那裏複製? – Zeki