Назад | Перейти на главную страницу

Mongorestore из oplog пропускает некоторые записи

Мы сделали дамп mongo oplog и теперь пытаемся восстановить его на другом сервере с помощью:

mongorestore -vvvvv --authenticationDatabase admin -u mongoUser -p --oplogReplay --filter '{"o._id": ObjectId( "54566b2856a34e1831157660" )}' dump/

Мы опустили только одну запись в фильтре для тестирования, но без фильтра ничего не импортируется с тем же выводом.

Мы сделали дамп из единственного набора реплик и пытаемся импортировать в новый сегментированный кластер.

Это дает следующий результат:

Enter password: 
2014-11-05T15:02:55.596+0100 creating new connection to:127.0.0.1:27017
2014-11-05T15:02:55.596+0100 [ConnectBG] BackgroundJob starting: ConnectBG
2014-11-05T15:02:55.597+0100 connected to server 127.0.0.1:27017 (127.0.0.1)
2014-11-05T15:02:55.597+0100 connected connection!
connected to: 127.0.0.1
2014-11-05T15:02:55.857+0100 drillDown: dump
2014-11-05T15:02:55.857+0100     Replaying oplog
     file size: 21413184554
2014-11-05T15:02:58.000+0100        Progress: 3905443976/21413184554    18% (bytes)
2014-11-05T15:03:01.001+0100        Progress: 8027986469/21413184554    37% (bytes)
2014-11-05T15:03:04.000+0100        Progress: 11157894758/21413184554   52% (bytes)
2014-11-05T15:03:07.001+0100        Progress: 14340379265/21413184554   66% (bytes)
2014-11-05T15:03:10.000+0100        Progress: 17890791357/21413184554   83% (bytes)
2820163 objects found
1 objects processed
2014-11-05T15:03:12.945+0100 Applied 1 oplog entries out of 1 (0 skipped).

Вроде хорошо, но запись не появляется в БД ... Что мы делаем не так?

Кроме того, мы запускаем oplogreplay из uberVU, чтобы синхронизировать со старой базой данных. Это работает нормально, записи продолжают появляться в новых db. Но нам пришлось указать --skipIndexes, потому что предыдущий индекс теперь является ключом осколка

Нам удалось решить эту проблему с помощью других инструментов, кроме mongodump / mongorestore. Переход к проекту гидры dropbox (https://github.com/dropbox/hydra) прошел намного быстрее и плавнее, чтобы скопировать всю базу данных и синхронизировать наш новый кластер.

Не знаю, если это инструменты, которые Маркус собирался предложить в комментариях, но они работают нормально :)

По-прежнему нет никаких подсказок, почему инструменты mongo здесь не работают. На отказ требуется 5 дней. Гидре потребовалось меньше суток до успеха ...