我正在将数据库从一台服务器迁移到另一台服务器,让我们说由于我无法控制的情况,我们仅限于“剪切和粘贴”。对于大约66GB的文件(.0,.1和.ns--每个文件中的几百个),这根本不可行。
我的一个想法是只复制转储文件,然后使用mongorestore
从备份中恢复数据库。转储文件总共只有几兆字节,因此很容易将这些文件从一个环境复制到另一个环境。
为了测试这种方法,我在Dev环境中执行以下操作。
首先,我创建了现有数据库的备份:
mongodump --dbpath z:\mongodata\db -o c:\mongodb\backup --journal
然后,我可以使用:
恢复它(或者,基本上从备份中“复制”它)mongorestore --dbpath c:\mongodb\data c:\mongodb\backup
但是,我注意到原始数据库( z:\ mongodata \ db )除了命名空间文件外还包含.0,和 .1文件。
恢复的数据库仅包含.0和.ns文件,并且不包含.1文件:
我理解这些是Mongod使用的“数据文件”,它们是created to a pre-allocated size,但我不明白为什么恢复的版本不包含所有的文件原始版本包含。
我怀疑Mongo默认创建了.0和.1,但是根本不需要或使用.1,而mongorestore
能够从BSON数据中识别出这个,并创建了恢复版本省略了.1,这是不需要的。
我是否在正确的轨道上?或者我应该担心mongorestore
不保留.1文件吗?