Мы сделали дамп 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 дней. Гидре потребовалось меньше суток до успеха ...