Replication

將 MongoDB 實例從 Standalone 轉換為 Replica Set 並備份

  • July 26, 2019

我想將我的 MongoDB 3.6 獨立伺服器轉換為副本集,以便我可以使用需要 oplog 的更改流來觀看集合。我只想使用更改流,因此將其保留為單個成員副本集。

問題是我的獨立實例有點大(~400 GB),我沒有它的備份。

我有幾個問題:

  1. 這種轉換被認為是安全的操作嗎?考慮到“轉換”的時間、所需的額外記憶體等是否有任何警告,或者僅當我連接更多節點時才適用?
  2. 備份這麼大的實例有哪些方法?我聽說過並閱讀過有關文件系統快照的資訊,但我不確定它們是什麼以及如何處理它們。

這種轉換被認為是安全的操作嗎?

將獨立節點轉換為副本集是一個簡單的過程,但如果您沒有部署的備份(並且此數據很重要),我肯定會優先創建和測試備份。如果您只有一個數據副本(正在使用的那個!),如果您的數據意外(或故意)發生不受歡迎的事情,您將擁有非常有限(並且可能是痛苦的)恢復選項。

考慮到“轉換”的時間、所需的額外記憶體等是否有任何警告,或者僅當我連接更多節點時才適用?

副本集成員將為操作日誌 (oplog)使用一些額外的儲存空間和 I/O,該操作日誌儲存用於複製和更改流等案例的操作的滾動記錄。轉換過程本質mongod上是使用新replSet選項重新啟動,然後使用rs.initate().

備份這麼大的實例有哪些方法?我聽說過並閱讀過有關文件系統快照的資訊,但我不確定它們是什麼以及如何處理它們。

MongoDB 文件描述了支持的備份方法,包括使用文件系統快照備份和恢復。文件系統快照使用系統級工具,這些工具取決於用於部署的作業系統和文件系統。

例如,Linux 有LVM(邏輯捲管理器),它可以對塊設備進行一致的備份。初始快照會有一些更明顯的成本,但後續快照通常很快。但是,快照通常依賴於與原始磁碟相同的儲存基礎架構,因此您必須制定計劃將快照歸檔並在其他位置保存備份。如果您使用具有網路數據量的雲提供商(亞馬遜、Google云、Azure 等),它們也有快照 API。

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