创建 mongo backup/restore 不带索引

Create mongo backup/restore without indexes

我想知道如何在不备份、不恢复索引的情况下创建 mongodump/mongorestore?

以及如何在不恢复索引的情况下增量恢复 mongo 数据库?

mongodump 实用程序从 MongoDB 创建数据的二进制导出,并将索引定义和收集选项保存在与每个转储的数据库关联的 metadata.json 中。索引详细信息不会在您的备份中占用任何重要 space,通常 mongorestore 会在从转储中导入每个集合的每个数据后重新确保索引。

如果您想避免在还原完成后创建任何新的二级索引,mongorestore 有一个 --noIndexRestore option

注意:default _id index 是必需的,并且始终会创建。

incrementally restore a mongo db without restoring the indexes?

无论您是否要还原到现有数据库,--noIndexRestore 的选项都适用。如果您使用 --noIndexRestore 选项 mongorestore 进入带有索引的现有数据库,则不会添加新的索引定义,但现有索引仍会在插入数据时更新。

增量备份和恢复实际上是一个单独的问题,除非您有一个简单的用例:从连续的转储中插入新文档。

从 MongoDB 2.6 开始,mongorestore 实用程序仅插入文档(即 updates/upserts 没有选项)。您可以使用 mongorestore 将多个转储插入现有集合,但任何导致重复键异常的文档(例如 _id)都将被跳过。

我通常希望增量备份和恢复意味着进行增量更改(所有 inserts/updates/deletions 自先前备份以来)并能够将这些更改重新应用到相同数据的旧副本。要实现增量备份,您需要数据更改的历史记录,在 MongoDB 的情况下,它将由副本集 operation log (oplog).

提供
sudo mongorestore --db dbName ./dumpPath/  --noIndexRestore