我已经安装了新的MongoDB服务器,现在我想从旧的服务器导入数据。我的MongoDB存储监控数据,从旧数据库导出数据有点问题(它超过10Gb),所以我可能直接从数据库导入,但还没找到如何用mongoimport做到这一点。
答案 0 :(得分:1)
出口/进口是最快的选择。
但是如果你真的想绕过它,可以使用新服务器作为旧服务器的副本,并等待完全复制。 它需要更长的时间,但它是一种简单的方法来设置完整副本而不影响第一个。
按照:
http://docs.mongodb.org/manual/tutorial/convert-standalone-to-replica-set/
然后,一旦完成,再次更改配置。
它比看起来最简单,但我建议你在做之前用样本数据库进行干运行......
请注意,另一个好处是新副本的大小可能比初始数据库小,因为MongoDb不擅长释放已删除成员的空间
答案 1 :(得分:1)
mongoimport/mongoexport
是每个集合运行的,所以它不适合这种操作。
而是使用mongodump/mongorestore
。
如果可以关闭旧的MongoDB实例来执行此任务,则可以关闭它,然后将所有数据文件作为自己的数据复制到新服务器。并运行新实例。
此外db.cloneDatabase()
可以处理它以将数据直接从旧实例复制到新实例。它应该比直接复制数据文件慢。
答案 2 :(得分:0)
您可以使用copydb
命令discribed here。
将数据库从远程主机复制到当前主机,或将数据库复制到当前主机中的另一个数据库。 copydb在目标mongod实例上运行,即接收复制数据的主机。