Mongodb

如何檢查 mongodb 元數據的完整性?

  • February 25, 2015

我不得不在僅包含 1 個分片的集群中替換 mongodb 配置伺服器。

錯誤地,我在沒有任何數據的情況下啟動了新的配置伺服器,並在日誌中收到以下消息:

$$ CheckConfigServers $$錯誤:無法驗證配置伺服器是否同步 :: 由 :: 配置伺服器 configserver1.mydomain.com:27019 和 configserver2.mydomain.com:27019 不同引起 按照“ http://docs.mongodb.org/manual/tutorial/replace-config-server/ ”中的過程,我試圖從mongos中停止平衡器。但我收到一條錯誤消息。我只能在重新啟動空配置伺服器後停止平衡器。

我將 dbpath 內容從 configserver2 複製到 configserver1,一切看起來都很好。

我想確保在這些操作過程中沒有數據失去或失去。集群中只有 1 個分片,數據會不會錯位?

謝謝,

格雷格。

您在啟動時收到的CheckConfigServers警告消息是一個完整性檢查,以防止在配置伺服器處於不一致狀態時發生任何元數據更改(例如,由於平衡輪而導致的塊遷移)。

使用空 dbpath 停止配置伺服器並從已知良好的配置伺服器重新複製數據是正確的操作。MongoDB配置伺服器不是副本集,並且通過由分片集群中的 mongod/mongos 伺服器協調的兩階段送出保持同步。

如果您只有一個分片,則數據不會放錯;它無處可遷移。

此外,如果您啟用了分片但沒有對任何集合進行分片,則數據將全部保存在主分片上。

引用自:https://serverfault.com/questions/532603