Mongodb 创建不带索引的mongo备份/恢复

Mongodb 创建不带索引的mongo备份/恢复,mongodb,Mongodb,我想知道如何在不备份、恢复索引的情况下创建mongodump/mongorestore 以及如何在不恢复索引的情况下增量恢复mongo db?该实用程序从MongoDB创建数据的二进制导出,并将索引定义和收集选项保存在与每个数据库关联的metadata.json中。索引详细信息不会占用备份中的任何重要空间,通常会被mongorestore用于在从转储导入每个集合的每个数据后重新确保索引 如果要避免在恢复完成后创建任何新的二级索引,mongorestore具有 注意:是必需的,并且始终创建 在不恢

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

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

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

如果要避免在恢复完成后创建任何新的二级索引,
mongorestore
具有

注意:是必需的,并且始终创建

在不恢复索引的情况下增量恢复mongo db

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

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

与MongoDB 2.6一样,
mongorestore
实用程序只插入文档(即没有更新/升级选项)。您可以使用
mongorestore
在现有集合中插入多个转储,但会跳过任何导致重复密钥异常的文档(例如
\u id


我通常认为增量备份和恢复意味着接受增量更改(自上次备份以来的所有插入/更新/删除),并能够将这些更改重新应用于相同数据的较旧副本。要实现增量备份,您需要数据更改的历史记录,在MongoDB的情况下,这将由副本集提供。

在不使用索引的情况下进行恢复,您的目标是什么?此外,这个问题属于DBA StackExchange,但我认为它将被迁移:)。我目前正在一个项目中工作,该项目已部署了3个版本,但至少60%的索引设置不正确,因此我们希望对数据库重新编制索引,还希望将mongo从solaris移动到基于linux的服务器,目前,当前的索引重建需要很长时间,因为我们正在重建它们,所以不需要它们!对于可能希望从转储中添加新文档/更新但从不删除数据的存档用例,您可能会发现在MongoDB问题跟踪器中监视/更新投票很有用。通过
mongorestore
升级肯定是一个比执行适当的增量备份/恢复更专业的用例,可能会导致与原始数据库的差异。请您解释一下您的解决方案好吗?干杯这是前面答案的简短版本。
sudo mongorestore --db dbName ./dumpPath/  --noIndexRestore