在搭建MongoDB(版本 3.2.9)的Replica Set時,使用 rs.status() 查看Replica Set的狀態,發現一個成員異常:replica set IDs do not match,詳細信息是:
"lastHeartbeatMessage" : "replica set IDs do not match, ours: xxx; remote node's: yyy",
"stateStr" : "(not reachable/healthy)"
嘗試了各種方法,在Primary 節點中,不能刪除該成員;將該成員的mongod重啟,強制Primay重新配置,都無法同步該成員的replica set ID。
--primary rs.remove("host:port") --restart use admin db.shutdownServer() --reconfigure rs.reconfig(conf,{force:true})
最后一招,必殺技,將該MongoDB Instance的數據文件全部刪除,然后在replica set 的 primary 節點中,重新添加該成員,終於將Replica Set 搭建成功。
rs.add("host:port")
在MongoDB中,replica set的配置信息存儲在local 數據庫的system.replset集合中,MongoDB無法同步replica set的ID,這很讓人糾結。