Mongodb 正在应用oplog,但发现重复的密钥错误

Mongodb 正在应用oplog,但发现重复的密钥错误,mongodb,mongorestore,mongodb-oplog,Mongodb,Mongorestore,Mongodb Oplog,Mongo版本是3.0.6,我有一个过程,通过mongodump和mongorestore使用--oplogReplay选项将另一个数据库中的oplog应用到目标数据库 但我多次发现重复的键错误消息,源数据库和目标数据库具有相同的结构(独立项和字段),这不可能在目标上有重复的记录,因为它首先在源数据库上是错误的 错误消息如下所示 2017-08-20T00:55:55.900+0000 Failed: restore error: error applying oplog: applyOp

Mongo版本是3.0.6,我有一个过程,通过mongodump和mongorestore使用--oplogReplay选项将另一个数据库中的oplog应用到目标数据库

但我多次发现重复的键错误消息,源数据库和目标数据库具有相同的结构(独立项和字段),这不可能在目标上有重复的记录,因为它首先在源数据库上是错误的

错误消息如下所示

2017-08-20T00:55:55.900+0000    Failed: restore error: error applying oplog: applyOps: exception: E11000 duplicate key error collection: <collection_name> index: <field> dup key: { : null }
2017-08-25T01:02:14.134+0000    Failed: restore error: error applying oplog: applyOps: not master

a是什么意思?我的理解是,mongorestore有“-stopOnError”选项,这意味着默认过程,如果有任何错误,恢复过程将跳过并继续。但我发现了上述错误,恢复过程随时都会终止:(

这并不能直接回答您的问题,很抱歉,但是


如果您需要将数据库A的oplog更改应用于数据库B,最好使用program,而不是mongodump/mongorestore-pair。

这并不能直接回答您的问题,很抱歉,但是


如果您需要将数据库A的oplog更改应用于数据库B,最好使用program,而不是mongodump/mongorestore-pair。

第二个错误,我发现根本原因是MongoDB内存不足,然后复制服务切换到另一个节点作为主节点,因为在还原期间数据库中有许多会话。The变通方法,我暂停了其他会话并再次还原。第二个错误,我发现根本原因是MongoDB内存不足,然后复制服务切换到另一个节点是主要的,因为在还原过程中数据库中有许多会话。变通方法,我暂停了其他会话并再次还原。它仍然使用Oplog,我不知道我不确定mongo connector和mongorestore在目标数据库上应用Oplog有什么不同,但我会尝试。谢谢。它仍然使用Oplog,我不确定mongo connector和mongorestore在目标数据库上应用Oplog有什么不同,但我会尝试。谢谢。