创建 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
我想知道如何在不备份、不恢复索引的情况下创建 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