【发布时间】:2011-07-26 14:47:42
【问题描述】:
我使用mongodump转储了我的mongodb数据库,它在dump/mydb下创建了一些bson文件
但我不知道如何使用它们。我试过mongoimport,但似乎无法导入 bson 数据。那么如何使用这些bson文件呢?如何将它们导入另一个 mongodb?
【问题讨论】:
标签: mongodb dump mongorestore mongodump
我使用mongodump转储了我的mongodb数据库,它在dump/mydb下创建了一些bson文件
但我不知道如何使用它们。我试过mongoimport,但似乎无法导入 bson 数据。那么如何使用这些bson文件呢?如何将它们导入另一个 mongodb?
【问题讨论】:
标签: mongodb dump mongorestore mongodump
对于 mongo 版本 3 及更高版本,请使用以下命令:
mongorestore --host=localhost --port=27017 --username=root --authenticationDatabase=admin --db=test dump_folder/
Mongo 之后会询问密码
【讨论】:
您需要使用 mongorestore,而不是用于导入 json 或 csv 等的 mongoimport ...。
来自back-up-with-mongodump 文档:
mongodump从 MongoDB 数据库读取数据并创建高保真 BSON 文件,mongorestore工具可以使用这些文件填充 MongoDB 数据库。
mongodump和mongorestore是简单高效的后备工具 启动和恢复小型 MongoDB 部署,但不适合 捕获大型系统的备份。
您可以在下面的文档中阅读有关 mongorestore 的更多信息;我会看一下并阅读它们,因为它们非常有帮助。
http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongorestore
您还可以查看http://learnmongo.com 获取提示和帮助!
【讨论】:
如前面的答案所述,您必须使用 mongorestore 而不是 mongoimport。添加到前面的答案,当您的 mongodb 运行时,执行以下命令从转储目录恢复您的转储,
mongorestore dump
这会将所有集合导入到您的 mydb 数据库中。但是,这不会在还原之前删除数据库。如果您希望在导入前删除数据库,
mongorestore --drop dump
mydb 目录中的 bson 文件将恢复为 mydb 数据库中的集合。有关 mongorestore 的更多信息,请查看文档here。
【讨论】:
为了解决这个问题,我将转储文件夹dbdump(包含bson文件)复制到mongodb的bin目录并在命令提示符下执行以下命令:
1。
cd "MongoDB 的 bin 文件夹路径"
(例如:cd C:\Program Files\MongoDB\Server\3.2\bin)
2。
mongorestore.exe --dir ./目录名 --db 数据库名
(例如:mongorestore --dir ./dbdump --db testdb)
转储文件夹中的所有 bson 文件都将导入到您的数据库中。
您可以通过执行以下命令来验证这一点:
cd "MongoDB 的 bin 文件夹路径"
mongo.exe
显示数据库;
【讨论】:
使用 mongorestore。 mongoimport 处理 mongoexport 的输出。 mongodump 和 mongorestore 处理二进制数据文件,而导入/导出处理 json、csv 等。(人类可读格式)
【讨论】:
我正在使用mongodump、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) 名称的文件夹,在文件夹 Backups 中使用来自指定数据库的转储集合。在文件资源管理器中它看起来像这样:
我用于恢复指定转储文件的第二个 bat 文件(这里您还需要指定转储文件的数据库名称和文件夹):
SET host=localhost:27020
SET dbNameToRestore=MyDB
SET restoreFolder=Restore
mongorestore.exe --host %host% --db %dbNameToRestore% %restoreFolder%
在文件资源管理器中:
此外,我正在使用 Windows 计划来自动执行备份过程。
希望以上信息对某人有用。
【讨论】:
a small data set,但是不知道小号怎么定义?