今天我正在使用mongodump来备份文件大小约为2GB的数据库,但我在转储文件中只有大约600 MB。 mongodump操作没有错误消息,后来我发现有些文件丢失了。如果不是因为文件大小的巨大差异,我不知道转储不成功。
是否有标准方法来检查转储文件是否正确?
p.s:似乎我可以使用db.stats()
检查原始数据库信息,然后mongorestore转储数据库并执行db.stats()
来比较文件总大小。两个文件大小是相同的(我是对的)?
p.s:如果我的VM有500 MB的内存,它是否可以成功转储2GB文件?
答案 0 :(得分:2)
你有一个2GB文件大小的数据库,但是MongoDB以块(例如2GB)分配数据文件,并且可能不会填充它们一段时间。您的数据库中可能只有600MB的数据(有关指导,请参阅db.stats())。您还应该注意,不会转储索引,只会删除它们在还原时重建的定义,因此删除这些索引会影响转储大小。由于您没有错误,我怀疑您在这里有一个完全有效的转储,它反映了2GB文件中实际存在的数据量。
如果我的VM有500 MB的内存,它可以成功转储2GB的文件吗?
是的,但如果所有数据都能适合内存,它会更快