MongoDB的。在恢复时保留有关分片集合的信息

时间:2013-02-27 23:02:10

标签: mongodb sharding database-backups database-administration

我在MongoDB 2.2中的复制分片群集中使用mongodump和mongorestore。获得备份并恢复它。

首先,我使用mongodump创建所有系统的转储,然后我删除一个具体的集合并使用mongoremp的输出mongorestore恢复它。之后,集合是正确的(它包含的数据是正确的以及索引),但是有关此集合是否被分片的信息将丢失。在删除它之前,该集合是分片的。但是,在恢复之后,集合不再被分片。

我当时想知道是否存在将这些信息保存在备份中的方法。我当时认为收集的分片信息可能保存在管理数据库中,但在转储中,admin文件夹是空的,并且对于这个数据库使用show collections我什么也得不到。然后我认为它可以保存在元数据中,但这很奇怪,因为我知道,在元数据中,存储有关索引的信息并正确恢复索引。

然后,我想知道是否可以使用而不是mongodump + mongorestore,文件系统快照来保存这些信息;或者仍然可以使用mongodump和mongorestore但停止系统或锁定写入。我不认为这最后一个选项可能是原因,因为即使没有锁定它,我也没有执行写入操作,只是为了给出想法。

我还想知道是否有人完全确定当前版本是否仍然没有此功能。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您使用mongodump备份分片集合,您确定它确实需要分片吗?通常分片集合非常大,而mongodump需要很长时间来备份它。

您可以执行以下操作来备份大型分片集合here.

关键是备份配置服务器以及每个分片 - 并在停止平衡后尽可能接近“同时”进行备份。配置数据库很小,所以你应该非常频繁地备份它。备份大分片的最佳方法是通过文件快照。