由于DocTooLargeForCapped错误,导致mongorestore失败



我正在尝试恢复如下集合:

$ mongorestore --verbose --db MY_DB --collection MY_COLLECTION /path/to/MY_COLLECTION.bson --port 1234 --noOptionsRestore

下面是错误输出(删除时间戳):

using write concern: w='majority', j=false, fsync=false, wtimeout=0
checking for collection data in /path/to/MY_COLLECTION.bson
found metadata for collection at /path/to/MY_COLLECTION.metadata.json
reading metadata file from /path/to/MY_COLLECTION.metadata.json
skipping options restoration
restoring MY_DB.MY_COLLECTION from file /path/to/MY_COLLECTION.bson
file /path/to/MY_COLLECTION.bson is 241330 bytes
error: write to oplog failed: DocTooLargeForCapped document doesn't fit in capped collection. size: 116 storageSize:1206976512 @ 28575
error: write to oplog failed: DocTooLargeForCapped document doesn't fit in capped collection. size: 116 storageSize:1206976512 @ 28575
restoring indexes for collection MY_DB.MY_COLLECTION from metadata
Failed: restore error: MY_DB.MY_COLLECTION: error creating indexes for MY_DB.MY_COLLECTION: createIndex error: exception: write to oplog failed: DocTooLargeForCapped document doesn't fit in capped collection. size: 116 storageSize:1206976512 @ 28575

恢复的结果是具有正确名称的数据库和集合,但没有文档。

操作系统:Ubuntu 14.04运行在Azure VM上。


我刚刚解决了我自己的问题。请看下面的答案。

问题似乎是我在复制集PRIMARY成员上使用了mongod

一旦我在/etc/mongod.conf中注释掉以下行,它就没有问题了:replSet=REPL_SET_NAME—> #replSet=REPL_SET_NAME

我假设将正确的副本集名称传递给mongorestore命令(如在这个问题中)也可以工作,但还没有尝试过。

最新更新