我很难确定这是否是受支持的操作。我发现了一些表明它过去不是这样的东西,但是我没有得到任何表明它不受支持的日志(只是令人困惑的日志),而且我无法在 mongo 的文档中找到任何表明它不被允许的东西。
以供参考:
- 操作系统:Centos6.6
- 蒙哥:v3.0.2
- 蒙戈外壳:v3.0.2
- Mongodump:v3.0.2
- Mongorestore:v3.0.2
这是我正在运行以创建转储的命令(我正在使用身份验证):
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
我尝试了几种不同的还原变体来获得我想要的东西,但它们似乎都有点偏差。在阅读了关于 mongorestore 的 mongo 文档中的以下内容后:
--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
关于 dog.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 日志消息的票,也许这只是糟糕的日志记录?