2011-07-04 113 views
0

嗨,我們在mongo上有一個生產數據庫,它有一組集合,並將所有活動加載到oplog中。現在我想寫一個腳本來觀看這個oplog,這樣當有新記錄被添加到oplog時,我想把它寫到另一個虛擬服務器上的數據庫。我該如何解決這個問題。我是mongo的新手,所以我不確定從哪裏開始。任何想法都會對我有所幫助。我正在考慮的東西上線將mongo db oplog複製到另一個mongo db

while(true) 
{ 
    watch(oplog) 
    OnNewEntry 
    { 
     AddToAnotherMongo(another.server.com,port,dbname,record) 
    } 
} 
+2

你想實現什麼?如果你想做複製,然後看看複製集(http://www.mongodb.org/display/DOCS/Replica+Sets) – Fabian

回答

4

有各種oplog讀者可以觀看和重播到特定的服務器。這是默認情況下的複製副本,並且只有一個主(寫入程序)。如果你只是想要你的數據的副本,那麼複製品是最好的選擇,並且沒有任何代碼的支持。

下面是一些代碼樣本,其讀取OPLOG:

1

我有一個simliar問題,發現下面的操作碼一個相當簡單的解決方案javascript中的例子將在mongo-shell中執行。

source code available here

隨着對每個操作可以應用到其他服務器的主服務器的OPLOG打開tailable光標(當然你也可以通過集合甚至數據庫的名稱空間過濾...)