2011-07-04 118 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光标(当然你也可以通过集合甚至数据库的名称空间过滤...)