如何将 MongoDB 数据库转移到另一台无法看到第一台机器的机器上?

35

我有一台服务器与外界通信有问题。 我想将其中的mongodb内容复制到另一台服务器,但由于这两台服务器无法相互通信,db.copyDatabase()是行不通的。

是否有类似于mysqldump的东西,可以将数据库转储为二进制文件,将其scp到其他位置,然后使用它填充另一个mongodb服务器?

3个回答

38

如果您正在使用Ubuntu / Linux,请运行以下命令。 首先,在原始服务器上运行mongodump

mongodump --db DataBaseName

将生成的dump/DataBaseName文件夹复制到新机器上,然后使用mongorestore进行导入:

mongorestore --db DataBaseName /path/to/DataBaseName 

请注意,/path/to/DataBaseName 应该是一个目录,里面填满了您数据的 .json 和 .bson 表示。


3
若要将备份文件保存至特定的位置,需添加参数 --out,例如:mongodump --db 数据库名称 --out ~/backups/ - Chris

34

使用mongodump和mongorestore命令。

mongodump --db test --collection collection
mongorestore --collection collection --db test dump/

您也可以使用gzip。文档中有更多示例。


mongodump - 看起来很显然。 - Aaron Silverman
这个适用于旧版本吗?我有Mongo v2.4.9,它显示:mongodump未定义 - user2173353
我知道这个,但如果我的数据很大并且有许多集合,现在我能否从文件管理器将整个数据库复制粘贴到另一台电脑上? - suresh pareek
我在使用mongorestore时遇到了一些问题(根目录必须是单个数据库的转储)。我使用的命令是:mongorestore --db myDB .\dump\myDB,你可以在Mongodb monogorestore "root directory must be a dump of a single database"或下面找到更多信息。 - JPBlanc

4
如果您想将数据库转移到另一个系统,则必须使用以下命令。首先将数据库转储到输出目录:
mongodump --db DatabaseName -o ./DirectoryName

然后将那个目录复制到您的计算机中,并执行以下命令:
mongorestore --db DBName ./DirectoryName

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接