开发者

replicating mongo db oplog to another mongo db

Hi we have a production DB on mongo which has a set of collections and all the activities are loaded into an oplog. Now i wanna write a script to watch this oplog so that when ever a new record is added to the oplog, i wanna write it to a db on another dummy server. How can i go about this. I am new to mongo, so im unsure of where to start with this. any ideas would be helpful for me. I am thinking of something on the lines of

 while(true)
 {
     watch(oplog)
     OnNewEntry 
     {
         AddToAnotherMongo(another.server.com,开发者_StackOverflow社区port,dbname,record)
     }
 }


There are various oplog readers which can watch and replay to a specific server. This is what replicasets do by default and there is only one primary (writer). If you just want copies of your data then replicasets are the best option, and supported without any code.

Here are some samples of code which read the oplog:

  • http://github.com/wordnik/wordnik-oss/
  • http://github.com/RedBeard0531/mongo-oplog-watcher/
  • http://github.com/mongodb/mongo-java-driver/blob/master/examples/ReadOplog.java


I had a simliar problem and found a quite easy solution following your opcode-example in javascript to be executed in a mongo-shell.

source code available here

With opening a tailable cursor on the oplog of the master server each operation could be applied to another server (of course you can filter by the namespace of the collections or even the databases...)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜