2012-11-15 64 views
1

我已經限制了本地MongoDB集合A,並且我想要複製到雲服務器上的MongoDB集合B.現在,我想保留來自A的文件,因爲它的上限大小將被刪除。MongoDB過濾的複製集合

 
Collection A  replicate  Collection B 
-------------- ----------> -------------- 
Capped at 50MB     Infinite size! 
local       cloud server 

這是可能的在MongoDB中(因爲它可能在CouchDB使用過濾器)?

或者我應該尋找一種完全不同的方法?

感謝您的諮詢!

回答

1

加蓋集合中的刪除不是操作,因此它們不會通過oplog進行復制。因此,所有你需要做的就是讓這個集合在一個輔助上沒有上限,並且當你將數據添加到上限集合並且這些操作被複制時,它會繼續增長。嘗試是這樣的:

  1. 添加輔助雲服務器上正常
  2. 停止新的輔助,重新啓動它集外,沒有複製集參數
  3. 降加蓋收集,使用相同的名稱重建常規的非封端的收集
  4. (可選)重新導入使用mongodump/mongorestore
  5. 重新啓動次級與原始副本集參數
  6. 新正常採集瓦特手動將數據生病只是繼續增長

如果您想要刪除集合或進行其他更改,您需要每次都進行輔助操作,否則應該按照您的需要進行操作。我沒有明確地做到這一點,但我已經看到這種情況不小心發生,必須做相反的事情:)