我正在尝试恢复如下集合:
$ 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
命令(如在这个问题中)也可以工作,但还没有尝试过。