2014-01-20 79 views
1

我在我的mongo分片設置中犯了一個錯誤 - 我的配置數據庫字符串中有錯誤。我試圖通過刪除配置數據庫服務器中的所有數據並重新啓動所有mongod服務來清除它。然而,在重新啓動mongos即使我還是最初獲得類似這樣的錯誤,mongos配置數據庫字符串在哪裏存儲?

當我運行:

sh.status(): 

我得到:

mongos specified a different config database string : stored : <old string here> 

在哪裏,這是該字符串實際上是被存儲在哪裏?我試圖在配置數據庫本身以及碎片的成員中尋找它,但我似乎無法找到它。

+1

個Mongod /分片緩存在內存中。你需要重新啓動它們。 –

回答

6

與在MongoDB 2.4中一樣,爲mongos服務器指定的--configsvr字符串也被緩存在分片mongod服務器的內存中。要使mongos服務器加入分片羣集,它們必須具有identical config string(包括主機名的順序)。

有一篇關於Migrate Config Servers with Different Hostnames的MongoDB手冊中的教程,涵蓋了整個過程,包括將配置服務器遷移到新主機(這不適用於您的情況)。

如果在重新啓動所有內容後仍然看到「不同的配置數據庫字符串」錯誤,則很可能在此過程中至少有一個流氓mongodmongos正在運行。

要解決此錯誤:

  • 關閉所有mongod進程(碎片)
  • 關閉mongos過程
  • 重啓mongod進程(碎片)
  • 重啓mongos用正確的--configsvr字符串
+0

也適用於我..謝謝 – user641887