2012-11-14 43 views
2
  1. 如何設置本地mongodb與mongolab上的鏡像(傳播所有寫入從本地到mongolab,所以它們總是同步 - 我不在乎原子,只是它在合理的時間範圍內同步)
  2. 如何在本地服務器停止工作時使用mongolab作爲後備(Ruby/Rails,mongo驅動程序和mongoid)。

背景:我曾經有一個本地mongo服務器,但它偶爾會崩潰,所有我的應用程序停止工作+我不得不「修復」數據庫以重新啓動它。然後,我轉向使用MongoDB,這讓我非常滿意,但它產生了很多流量,我希望通過本地「緩存」來避免流量,但不必擔心本地緩存崩潰導致所有應用停止運行加工。數據庫相對較小,因此大小不是問題。我並沒有試圖消除與mongolab通信的通信開銷,只是降低了一點。本地mongo服務器與蒙哥拉鏡和後退

回答

2

我假設你不想讓mongolab實例成爲副本集的一部分(或者也許沒有提供)。最簡單的方法是將遠程mongod實例添加爲hidden member(優先級0),並讓它從本地實例中複製數據。

您可以使用的另一種即時解決方案是mongooplog,它可用於在一臺服務器上輪詢oplog,然後將其應用於另一臺服務器。基本上按需複製(您需要適當地生成一個實例等,並且需要管理任何故障)。點擊此處瞭解詳情:

http://docs.mongodb.org/manual/reference/mongooplog/

最後的選擇將是您選擇的語言使用tailable cursor到OPLOG數據送入遠程實例來寫自己的東西。

+0

謝謝,我會嘗試使用此信息,如果我沒有任何問題,我會接受您的答案。 – mrbrdo