mongodb conf節點無法啟動 - 兼容性錯誤
我最近將 dev sharded-cluster 從 3.6 升級到 4.0 - 一個 conf 伺服器現在無法啟動:
2020-01-30T13:19:02.972-0600 F 控制
$$ initandlisten $$** 重要提示:升級問題:發現無效的 featureCompatibilityVersion 文件(錯誤:BadValue:版本值無效,找到 3.6,預期為“4.2”或“4.0”。admin.system.version 中的 featureCompatibilityVersion 文件的內容:{ _id:“featureCompatibilityVersion ”,版本:“3.6”}。見 http://dochub.mongodb.org/core/4.0-feature-compatibility。)。如果目前的 featureCompatibilityVersion 低於 4.0,請參閱 http://dochub.mongodb.org/core/4.0-upgrade-fcv上的升級文件。
從 3.6 -> 4.0 升級報告為成功 - 我檢查了數據分片,但沒有想到檢查每個 conf 伺服器…今天,我剛剛升級了 mongo 二進製文件並在重新啟動時遇到了其中一個 conf 伺服器的問題未能從上述錯誤開始。在更新重啟後我注意到這個問題之前,集群已經在 4.0 執行了數週。
其他兩個 conf 伺服器(正在執行)報告它們處於 4.0,因此那裡的生活很好,所有數據分片也是如此。
如果沒有遇到此錯誤,我無法啟動 conf 伺服器,該錯誤會關閉伺服器,從而無法從 mongos 發出 set-feature-compatibility-version 指令。
由於其他兩個 conf 節點正在執行並報告正確的發布版本,是否最好只核對 down-server 的數據,嘗試重新啟動節點,然後發出命令以確保重新啟動的節點的數據版本正確?或者,是否有某種強制命令可以繞過版本檢查?
射線!
選擇核選項:
- 停止了孤立的伺服器
- 移動數據目錄並重新創建新目錄
- 從主伺服器中刪除孤立伺服器
- 使用空數據目錄啟動孤立伺服器
- 將孤立伺服器從主伺服器添加到池中
數據立即開始同步,集群配置伺服器的 rs.status() 報告一切正常。
請刪除
/data/*
,因為從 * 執行時仍然存在。對於任何版本的 mongodb 創建sudo mkdir -p /data/xx
文件夾。例如 mongodb 4.4.2 ->
sudo mkdir /data/442
&執行伺服器:
sudo ./mongod --port xxxxx --dbpath /data/442
&執行cli:
sudo ./mongo --port xxxxx