Replication

MongoDB Replica Set 通過從另一個成員複製數據文件來同步數據

  • February 8, 2022

我使用了 MongoDB 3.6 並且正在關注 MongoDB 文件:

https://docs.mongodb.com/manual/tutorial/resync-replica-set-member

將數據從主節點完整復製到另一個 mongod 實例。我將 admin 和 local 以及所有數據庫文件夾都複製到了新節點中。在所有數據準備好後,將新節點添加到副本集中。副本集似乎開始了另一個初始同步並將數據從主節點複製到新節點。我在主節點中獲得了 400 GB 的數據,所以幾個小時後,輔助節點的數據大小達到 600 GB,並且沒有剩餘磁碟空間,導致同步失敗。因此,即使在我手動完成此數據複製之後,MongoDB 似乎仍在將所有數據從 Primary 複製到 Secondary。更令人驚訝的是,它保留了我複制的數據並繼續進行自己的數據同步。有什麼建議嗎?

您執行重新同步的方式不正確。要執行輔助成員的重新同步(假設它已經是副本集的成員),請關閉(停止 mongod 程序)secondaray 節點,從 /data 目錄中刪除所有文件夾,包括日誌並重新啟動節點,以便它重新再次加入副本集

一旦重新加入副本集,mongodb 會自動將包括本地數據庫在內的所有數據文件複製到輔助節點。您不需要手動複製管理員或本地數據庫,因為 mongo 會處理它

謝謝!

-Anban

https://docs.mongodb.com/v4.0/tutorial/resync-replica-set-member/#copy-the-data-files

您可以將數據文件擷取為快照或直接副本。但是,在大多數情況下,您無法將數據文件從正在執行的 mongod 實例複製到另一個實例,因為數據文件會在文件複製操作期間發生更改。

在這個連結中,也許你需要先停止你的主要然後複製所有文件?

引用自:https://dba.stackexchange.com/questions/245262