2

今天我正在做 mongodump 来备份一个文件大小约为 2GB 的数据库,但转储文件中只有大约 600 mb。mongodump 操作没有错误信息,后来我发现有些文件丢失了。如果不是因为文件大小的巨大差异,我不会知道转储不成功。

是否有标准方法来检查转储文件是否正确?

ps: 看来我可以db.stats()用来检查原始db信息,然后mongorestore转储的db并db.stats()比较总文件大小。并且两个文件大小相同(对吗)?

ps:另外,如果我的虚拟机有 500 mb 的内存,它可以成功转储一个 2GB 的文件吗?

4

1 回答 1

2

您有一个文件大小为 2GB 的数据库,但 MongoDB 以块(如 2GB)的形式分配数据文件,并且可能在一段时间内无法填充它们。您的数据库中可能只有 600MB 的数据(请参阅db.stats()以获得一些指导)。您还应该注意,不会转储索引,只会转储它们用于在还原时重建的定义,因此删除这些将影响您的转储大小。由于您没有错误,我怀疑您在这里有一个完全有效的转储,它反映了 2GB 文件中实际存在的数据量。

如果我的虚拟机有 500 mb 的内存,它可以成功转储一个 2GB 的文件吗?

是的,但如果所有数据都可以放入内存中会更快

于 2015-12-17T09:05:25.283 回答