Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb mongodump如何使用转储的数据?_Mongodb_Dump_Mongorestore_Mongodump - Fatal编程技术网

Mongodb mongodump如何使用转储的数据?

Mongodb mongodump如何使用转储的数据?,mongodb,dump,mongorestore,mongodump,Mongodb,Dump,Mongorestore,Mongodump,我用mongodump转储了我的mongodb数据库,它在dump/mydb 但我不知道如何使用它们。我尝试了mongoimport,但似乎无法导入bson数据。那么如何使用这些bson文件呢?如何将它们导入另一个mongodb?使用mongorestore。mongoimport使用mongoexport的输出。mongodump和mongorestore处理二进制数据文件,而导入/导出处理json、csv等。。(人类可读格式)您需要使用mongorestore,而不是mongoimport。

我用
mongodump
转储了我的mongodb数据库,它在
dump/mydb


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

使用mongorestore。mongoimport使用mongoexport的输出。mongodump和mongorestore处理二进制数据文件,而导入/导出处理json、csv等。。(人类可读格式)

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

从使用mongodump备份的
文档:

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

mongodump
mongorestore
是简单有效的支持工具 启动和恢复小型MongoDB部署,但对于 捕获大型系统的备份

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

您还可以查看提示和帮助

我正在使用,用于日常备份和从备份恢复。我有两个
.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)
。在文件资源管理器中,如下所示:

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

在文件资源管理器中:

另外,我正在使用windows schedule自动化备份过程


希望以上信息对其他人有用。

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

一,。 cd“MongoDB的bin文件夹路径”
(示例:cd C:\Program Files\MongoDB\Server\3.2\bin)

二,。 mongorestore.exe--dir./目录名--db数据库名
(示例:mongorestore--dir./dbdump--db testdb)

转储文件夹中的所有bson文件都将导入数据库。 您可以通过执行以下命令来实现这一点:
cd“MongoDB的bin文件夹路径”
mongo.exe

展示星展

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

mongorestore dump
这将把所有集合导入您的mydb数据库。但是,这不会在还原之前删除数据库。如果希望在导入之前删除数据库

mongorestore --drop dump

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

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

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

之后Mongo会询问密码

这真的很有用。我需要一些额外的功能(备份到网络共享)。您认为有多少数据可以安全转储?根据mongo文档,
建议使用小型数据集
,但我不知道如何定义小型?奇怪的是,我试图对您的答案进行投票,但结果没有改变。无论如何,mongorestore需要从命令行运行,而不是在mongo Shell中。哦,是的,我忘了提到这一点。
mongorestore --host=localhost --port=27017 --username=root --authenticationDatabase=admin --db=test dump_folder/