如何使用mongodump转储的数据?

时间:2011-03-31 05:04:53

标签: mongodb dump mongorestore mongodump

我使用mongodump转储我的mongodb数据库,它在dump/mydb下创建了一些bson文件

但我不知道如何使用它们。我试过mongoimport,但似乎无法导入bson数据。那么如何使用这些bson文件?如何将它们导入另一个mongodb?

6 个答案:

答案 0 :(得分:65)

您需要使用 mongorestore ,而不是mongoimport ...用于导入json或csv等内容。

来自back-up-with-mongodump文档:

  

mongodump从MongoDB数据库读取数据并创建高保真BSON文件,mongorestore工具可用于填充MongoDB数据库。

     

mongodumpmongorestore是支持的简单而有效的工具   升级和恢复小型MongoDB部署,但不是理想的   捕获更大系统的备份。

您可以在下面的文档中阅读有关 mongorestore 的更多信息;我会看一看并阅读它们,因为它们非常有帮助。

http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongorestore

您还可以查看http://learnmongo.com以获取提示和帮助!

答案 1 :(得分:37)

我正在使用mongodumpmongorestore进行日常备份和从备份恢复。我有两个.bat个文件:
首先,对于备份,您只需指定主机数据库名称和备份文件夹:

SET host=localhost:27020
SET dbNameToDump=MyDB
SET backupsFolder=Backups

mongodump.exe --host %host% --db %dbNameToDump%

SET date="%date:~10,4%-%date:~4,2%-%date:~7,2%.%time:~0,2%-%time:~3,2%"
cd %backupsFolder%
md %date%

xcopy /e ..\dump %date%

rmdir /s /q ..\dump

在bat文件上创建文件夹,其名称如此2011-03-31.11-17(yyyy-MM-dd.hh-ss)在文件夹备份中,其中包含来自指定数据库的转储集合。在文件资源管理器中它看起来像这样:

enter image description here

我使用的第二个bat文件用于retore指定的转储文件(这里你还需要指定数据库名称和带有转储文件的文件夹):

SET host=localhost:27020
SET dbNameToRestore=MyDB
SET restoreFolder=Restore

mongorestore.exe --host %host% --db %dbNameToRestore% %restoreFolder%

在文件资源管理器中:

enter image description here

另外,我使用Windows计划自动执行备份过程。

希望以上信息对某人有用。

答案 2 :(得分:8)

如前面的答案中所述,您必须使用 mongorestore 而不是 mongoimport 。添加到以前的答案,当您的mongodb运行时,执行以下命令从转储目录恢复转储,

mongorestore dump

这会将所有集合导入 mydb 数据库。但是,在恢复之前,这不会丢弃数据库。如果您希望在导入之前删除数据库,

mongorestore --drop dump

mydb 目录中的bson文件将作为 mydb 数据库中的集合进行恢复。有关mongorestore的更多信息,请查看文档here

答案 3 :(得分:6)

使用mongorestore。 mongoimport适用于mongoexport的输出。 mongodump& mongorestore在json,csv等导入/导出工作时处理二进制数据文件。(人类可读格式)

答案 4 :(得分:3)

为了解决这个问题,我将转储文件夹 dbdump (包含bson文件)复制到mongodb的bin目录,并在命令提示符下执行以下命令:

1。     cd" MongoDB的bin文件夹路径"
    (例如:cd C:\ Program Files \ MongoDB \ Server \ 3.2 \ bin)

2。     mongorestore.exe --dir ./directory name --db database-name
    (例如:mongorestore --dir ./dbdump --db testdb)

转储文件夹中的所有bson文件都将导入到您的数据库中。 您可以通过执行以下命令来验证这一点:
    cd" MongoDB的bin文件夹路径"
    mongo.exe
    show dbs;

答案 5 :(得分:1)

对于mongo 3及更高版本,请使用以下命令:

mongorestore --host=localhost --port=27017 --username=root --authenticationDatabase=admin --db=test dump_folder/

此后,Mongo将询问密码