我很难发现这是否是支持的操作。我找到的东西表明它没有用,但是我没有得到任何表明它不受支持的日志(只是混淆日志)而且我找不到任何东西在mongo的文档中表明它不被允许。
供参考:
这是我正在运行以创建转储的命令(我正在使用auth):
mongodump -u username -p password --authenticationDatabase admin --oplog
这是转储后的原始文件结构。
└── dump
├── oplog.bson
├── admin
│ ├── system.users.bson
│ ├── system.users.metadata.json
│ ├── system.version.bson
│ └── system.version.metadata.json
├── dogs
│ ├── tails.bson
│ └── tails.metadata.json
└── mydata
├── objects.bson
├── objects.metadata.json
├── fs.chunks.bson
├── fs.chunks.metadata.json
├── fs.files.bson
├── fs.files.metadata.json
├── configuration.bson
└── configuration.metadata.json
我已经尝试了一些不同的恢复版本来获得我想要的东西,但它们每个看起来都有点偏差。在mongo关于mongorestore的文档中阅读以下内容后:
- db不控制mongorestore恢复哪些BSON文件。您必须使用mongorestore路径选项来限制已还原的数据。
在我看来,我应该能够将oplog.bson复制到我想要恢复的特定数据库文件夹中,然后从dump /中运行以下命令:
mongorestore -u username -p password --authenticationDatabase admin --oplogReplay --db dogs dogs
我发现这令人困惑,因为它提供了这些日志:
2015-05-13T22:10:12.694+0000 building a list of collections to restore from dogs dir
2015-05-13T22:10:12.695+0000 reading metadata file from dogs/tails.metadata.json
2015-05-13T22:10:12.695+0000 restoring dogs.oplog from file dogs/oplog.bson
2015-05-13T22:10:12.696+0000 no indexes to restore
2015-05-13T22:10:12.696+0000 finished restoring dogs.oplog
2015-05-13T22:10:12.696+0000 restoring dogs.tails from file dogs/tails.bson
2015-05-13T22:10:12.697+0000 restoring indexes for collection dogs.tails from metadata
2015-05-13T22:10:12.697+0000 finished restoring dogs.tails
2015-05-13T22:10:12.697+0000 replaying oplog
2015-05-13T22:10:12.697+0000 no oplog.bson file in root of the dump directory, skipping oplog application
2015-05-13T22:10:12.697+0000 done
关于dogs.oplog的第一部分看起来似乎有些事情正在发挥作用,但后来有关oplog的消息让我感到困惑。
无论我尝试哪些目录和路径的变化,我都似乎无法满足这条消息:
2015-05-13T22:10:12.697+0000 replaying oplog
2015-05-13T22:10:12.697+0000 no oplog.bson file in root of the dump directory, skipping oplog application
这是否意味着我的oplog重播没有发生?我的时间点备份/恢复是否仍然按照我的预期进行?我记得看到一些关于改善mongotools日志消息的门票,也许这只是糟糕的日志记录?