我想知道如何在不备份的情况下创建mongodump / mongorestore,恢复索引?
以及如何在不恢复索引的情况下逐步恢复mongo数据库?
答案 0 :(得分:16)
mongodump
实用程序从MongoDB创建数据的二进制导出,并将索引定义和集合选项保存在与转储的每个数据库关联的metadata.json
中。索引详细信息不占用备份中的任何大量空间,并且mongorestore
通常会在从转储导入每个集合的每个数据后重新确保索引。
如果要在还原完成后避免创建任何新的二级索引,mongorestore
有一个--noIndexRestore
option。
注意:default _id
index是必需的,并且始终是创建的。
在不恢复索引的情况下逐步恢复mongo db?
--noIndexRestore
的选项适用于您是否要还原到现有数据库。如果使用mongorestore
选项--noIndexRestore
进入具有索引的现有数据库,则不会添加新的索引定义,但在插入数据时仍会更新现有索引。
增量备份&除非您有一个简单的用例:从连续转储中插入新文档,否则还原实际上是一个单独的问题。
与MongoDB 2.6一样,mongorestore
实用程序仅插入文档(即没有更新/ upsert选项)。您可以使用mongorestore
将多个转储插入到现有集合中,但会跳过导致重复键异常的任何文档(例如_id
)。
我通常希望增量备份&恢复意味着采取更改的增量(自先前备份以来的所有插入/更新/删除),并能够将这些更改重新应用于相同数据的旧副本。要实现增量备份,您需要一个数据更改历史记录,MongoDB的情况将由副本集operation log (oplog)提供。
答案 1 :(得分:0)
sudo mongorestore --db dbName ./dumpPath/ --noIndexRestore