репликация mongo db oplog на другую mongo db

Привет, у нас есть производственная БД на монго, в которой есть набор коллекций, и все действия загружаются в oplog. Теперь я хочу написать скрипт для просмотра этого оплога, чтобы при добавлении новой записи в оплог я хотел записать ее в базу данных на другом фиктивном сервере. Как я могу это сделать. Я новичок в монго, поэтому не знаю, с чего начать. любые идеи будут полезны для меня. Я думаю о чем-то в духе

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

person swordfish    schedule 04.07.2011    source источник
comment
Чего вы хотите достичь? Если вы хотите выполнить репликацию, просмотрите наборы реплик (mongodb.org/display/DOCS/ Реплика+наборы)   -  person Fabian    schedule 04.07.2011


Ответы (2)


Существуют различные программы для чтения оплогов, которые могут просматривать и воспроизводить на определенном сервере. Это то, что наборы реплик делают по умолчанию, и есть только один первичный (записывающий). Если вам просто нужны копии ваших данных, то наборы реплик — лучший вариант, который поддерживается без какого-либо кода.

Вот несколько примеров кода, который читает oplog:

person Scott Hernandez    schedule 04.07.2011

У меня была аналогичная проблема, и я нашел довольно простое решение, следуя вашему примеру кода операции в javascript для выполнения в оболочке mongo.

исходный код доступен здесь

При открытии хвостового курсора в оплоге главного сервера каждая операция может быть применена к другому серверу (конечно, вы можете фильтровать по пространству имен коллекций или даже баз данных...)

person Christian Suenkel    schedule 25.02.2012