创建没有索引的mongo备份/恢复

mau*_*ado 8 mongodb

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

以及如何在不恢复索引的情况下逐步恢复mongo db?

Ste*_*nie 20

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

如果你想避免创建任何新的二级指标在还原完成之后,mongorestore有一个--noIndexRestore选项.

注意:默认_id索引是必需的,并且始终是创建的.

在不恢复索引的情况下逐步恢复mongo db?

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

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

与MongoDB 2.6一样,该mongorestore实用程序仅插入文档(即没有更新/ upsert选项).您可以使用mongorestore将多个转储插入到现有集合中,但_id会跳过导致重复键异常(例如)的任何文档.

我通常希望增量备份和恢复意味着采取更改的增量(自先前备份以来的所有插入/更新/删除),并能够将这些更改重新应用于相同数据的旧副本.要实现增量备份,需要更改数据的历史记录,MongoDB的情况将由副本集操作日志(oplog)提供.