MongoDB导入导出备份恢复实践

毕业设计使用机器学习分类算法来训练新闻分类模型,从 MongoDB 数据库读取爬虫获取的新闻文本数据(300多万条数据),自己笔记本性能有限,6个机器学习分类算法搞了一天只跑出来一个 LR 的,所以想借助基友大学实验室 2 万多的主机来跑模型,但是考虑到他本地并没有装 MongoDB 的环境,我就想把本地的 MongoDB 数据库中的数据上传到自己的阿里云服务器上,方便后面使用他的主机(哈哈~)。在云服务器上搭建好 MongoDB 的环境,接下来就是把数据导入进去了,也学习下 MongoDB 的导入导出备份恢复。

MongoDB 的导入导出只对于单个表,而我想把整个数据库都导出来,只能使用 MongoDB 的备份功能。

这里需要注意的是 MongoDB 默认安装好是没有设置密码的,可以直接免密登登录,我本地的 MongoDB 是设置了密码,服务器上的为了方便使用临时未设置密码。

下面就简单介绍备份(mongodump)、恢复(mongorestore)、导出(mongoexport)、导入(mongoimport)这四个命令和自己的实践。

备份命令:

详情见MongoDB官方文档 MongoDB官方文档mongodump命令

基本语法: mongodump -h dbhost -d dbname -o dbdirectory

参数说明:

-h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

-d: 需要备份的数据库实例,例如:test

-o: 备份的数据存放位置,目录要提前建好

–port:端口号

下面这几个参数是设置了用户密码才会用到,类似于 MySQL 数据库

-u:用户名

-p:密码

–authenticationDatabase admin:验证用户名密码是否正确,否则会报权限错误

下图为我本地设置过用户名和密码的备份 news 数据库实践

恢复命令

详情见MongoDB官方文档 MongoDB官方文档mongorestore命令

基本语法: mongorestore -h dbhost -d dbname --dir dbdirectory

参数说明:

-h: MongoDB所在服务器地址

-d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

–dir: 备份数据所在位置

其他参数这里就不多说了

下图为在我服务器上恢复 news 数据库的实践

导出命令

详情见MongoDB官方文档 MongoDB官方文档mongoexport命令

基本语法: mongoexport -d dbname -c collectionname -o file --type json/csv -f field

参数说明:

-d :数据库名

-c :collection名

-o :输出的文件名

–type : 输出的格式,默认为json,,可以不用加,指定文件名的时候就指定文件格式

-f :输出的部分字段,如果-type为csv,则需要加上-f “字段名”

下图为我本地设置过用户名和密码的导出 news 数据库中的 test 表实践

导入命令

详情见MongoDB官方文档 MongoDB官方文档mongoimport命令

基本语法: mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field

参数说明:

-d :数据库名

-c :collection名

–type :导入的格式默认json

-f :导入的字段名

–headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段

–file :要导入的文件

下图为在我服务器上导入 test 表的实践

参考文章:

mongodb 备份、还原、导入、导出简单操作

MongoDB官方文档mongodump命令

MongoDB官方文档mongorestore命令

MongoDB官方文档mongoexport命令

MongoDB官方文档mongoimport命令

本文作者:Wizey

本文链接:http://wenshixin.gitee.io/blog/2019/04/21/MongoDB导入导出备份恢复实践/

版权声明:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!