2013-03-22 25 views
4

mongos在開始時未運行。當試圖啓動mongos我看到下面的日誌:無法升級sharded mongoDB或停止平衡器

Fri Mar 22 17:43:13.383 [mongosMain] ERROR: error upgrading config database to v4 :: caused by :: newer version 4 of mongo config metadata is required, current version is 3, need to run mongos with --upgrade

但隨着--upgrade參數,我看到以下日誌:

Fri Mar 22 17:43:39.273 [mongosMain] ERROR: error upgrading config database to v4 :: caused by :: balancer must be stopped for config upgrade

現在的問題是:我不能sh.stopBalancer()停止平衡器,因爲我無法啓動mongos。現在對我來說這是一個僵局。請幫忙。

回答

1

假設你遵循的建議,始終運行3配置服務器,我會嘗試以下步驟:

  1. 確保所有其他mongos客戶停止。如果沒有mongos在運行,那麼平衡器也不應該保持鎖定狀態。

  2. 如果仍然出現錯誤(在確定沒有mongos連接到配置服務器之後),我將停止除配置服務器之外的所有配置服務器,並清除管理數據庫中任何剩餘的平衡器鎖。成功嘗試使用此配置服務器後,我會重置其他兩個。如果不成功,您還有其他兩個副本。

+0

有線的事情是所有3 configsrv正在運行,但所有mongos客戶端都關閉。嘗試升級時仍然存在錯誤。 – ShuaiYuan 2013-03-22 19:48:33

+0

但是,無論如何感謝您的幫助。我按照提示重新檢查瞭如何連接到configsrv並解決了問題。 – ShuaiYuan 2013-03-22 19:49:15

5

我發現了這個問題。我應該連接到端口27019,獲得configsrv。這樣我就不需要開始mongos。相反,sh.stopBalancer()只能在mongo解釋器中執行。

+0

只要確保在其中一個配置服務器上直接更改數據時,不要搞亂其他配置服務器之間的同步。由於mongos通常負責這樣做 – baloo 2013-03-22 19:53:23

+0

您實際上需要啓動'mongos',因爲它會執行升級。 *連接到'configsvr'時,你不需要運行*。 – rbrito 2013-06-17 17:48:34

+0

@rbrito出現了阻止'mongos'啓動的錯誤。爲了解決它們,我需要首先直接連接到'configsrv'(然後我基本上擦除了所有配置)。 – ShuaiYuan 2013-06-18 21:45:31

1

我有同樣的問題。對我來說,解決方案是連接到configsvr與蒙戈外殼

蒙戈--host ip_of_config_server_host --port 27019

sh.setBalancerState設置均衡器關閉從那裏(false)

之後我可以做配置服務器升級

mongos --port 27017 --configdb ip_of_config_server_host --upgrade

2

剛纔我有同樣的問題。我將我的mongo數據庫從verion 2.0.4更新到2.4.3。 我無法連接到mongos,因爲需要升級配置服務器。但是,我無法使用命令stopBalancer()停止平衡器,因爲我的mongos處於非活動狀態。我沒有找到來自stackoverflow的其他解決方案。我嘗試了很多次。

我的解決方案是: 1,ssh到配置服務器;

2,使用config數據庫;

可能需要通過認證;

3, 運行db.settings。更新({_id:「balancer」},{$ set:{stopped:true}},true) 停止平衡器;

4,我可以用--upgrade選項運行「mongos」;