将mongodb oplog复制到另一个mongodb

时间:2011-07-04 10:56:38

标签: mongodb scala database-replication database

您好我们在mongo上有一个生产数据库,它有一组集合,所有活动都被加载到oplog中。现在我想写一个脚本来观看这个oplog,这样当一个新的记录添加到oplog时,我想把它写到另一个虚拟服务器上的数据库。我怎么能这样做呢。我是mongo的新手,所以我不确定从哪里开始。任何想法对我都有帮助。

我正在考虑一些事情
 while(true)
 {
     watch(oplog)
     OnNewEntry 
     {
         AddToAnotherMongo(another.server.com,port,dbname,record)
     }
 }

2 个答案:

答案 0 :(得分:4)

有各种oplog阅读器可以观看和重播特定的服务器。这就是replicasets默认执行的操作,并且只有一个主要(writer)。如果您只想要数据副本,那么复制副本是最佳选择,并且不需要任何代码即可支持。

以下是一些读取oplog的代码示例:

答案 1 :(得分:1)

我有一个类似的问题,并且在你的操作码示例中找到了一个非常简单的解决方案,在javascript中以mongo-shell执行。

source code available here

在主服务器的oplog上打开一个tailable游标,每个操作都可以应用到另一个服务器(当然你可以按集合的命名空间甚至数据库进行过滤......)