如何完全刪除 mongoDB 副本集?

如何完全刪除 mongoDB 副本集?

我有一個 mongoDB 集群,有 4 個不同的副本集。最近有兩台機器以不可恢復的方式崩潰,資料完全消失。可惜的是,這 2 台主機上安裝了 1 個副本集。

我面臨的問題是,配置仍然表明某些資料位於該副本集主機上,並且當客戶端應用程式嘗試從這些機器上恰好有區塊的集合中讀取時,它會傳回以下錯誤:

找不到與設定的replicaSetShardServer4的讀取首選項{mode:「primary」}相符的主機

這是有道理的,因為那兩台伺服器已經消失了。

因此,我想找到一種方法從配置中刪除這些伺服器,但我正在尋找的每個過程都提到連接副本集的主節點並刪除分片,從那時起,這些主機又消失了。

答案1

更改設定檔和註解行

replication:
   replSetName: ...

重新啟動蒙戈服務。連接到節點並刪除local資料庫。

db.getSiblingDB('local').dropDatabase() 

透過此操作,您可以將 ReplicaSet 還原為獨立的 MongoDB。之後,您再次配置 ReplicaSet,請參閱:將獨立 mongod 轉換為副本集

也看看從 MongoDB 備份還原副本集,該過程與您的情況所需的相同 - 除了第一步“獲取備份 MongoDB 資料庫文件”之外 - 當然不需要此步驟。

相關內容