Mongodb

我們可以在 MongoDB 中復製或限制特定數據庫嗎

  • December 11, 2019

在 MySQL 中,我們在複製期間使用了 replicate-do-db/replicate-ignore-db,我們可以在其中將特定數據庫從 Master 複製或限製到 Slave。

同樣,在MongoDB複製中是否有任何特定的配置或解決方法來限制數據同步期間的特定數據庫和集合。

如果沒有,是否有任何其他方法可以僅將特定數據庫或集合從 Master 同步到 Slave。

我正在使用 MongoDB 3.6

MongoDB 中的副本集是為數據冗餘和故障轉移而設計的,因此副本集的所有數據承載成員目前包含與 MongoDB 4.2 相同的數據庫和集合。具有部分數據集的成員將無法實現副本集部署的這些關鍵設計目標中的任何一個。

有一個相關的伺服器問題您可以觀看和投票:SERVER-1559: Ability for a replica set node to only have a subset of databases or collections。這目前在開發積壓中,但您可以在此期間使用另一種方​​法。

如果您想支持非標準複製/同步方案,我會考慮編寫一個小程序來使用 MongoDB Change Streams API複製所需的更改。更改流事件基於複製 oplog,允許您過濾和處理匹配命名空間、操作類型或欄位值等條件的相關事件。您還可以使用其他聚合階段(例如,投影欄位子集或添加計算欄位)修改更改流輸出。最重要的是,Change Streams API 為您提供了到 MongoDB 伺服器未來版本的受支持升級路徑。

在 MongoDB 3.6 中,您只能在集合級別打開更改流。由於您對數據庫或部署級別的更改感興趣,因此值得升級到包含更全面的更改流支持的 MongoDB 4.0 。

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