如何从另一个MongoDB将数据导入MongoDB?

时间:2014-09-16 07:08:11

标签: mongodb

我已经安装了新的MongoDB服务器,现在我想从旧的服务器导入数据。我的MongoDB存储监控数据,从旧数据库导出数据有点问题(它超过10Gb),所以我可能直接从数据库导入,但还没找到如何用mongoimport做到这一点。

3 个答案:

答案 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实例上运行,即接收复制数据的主机。