前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB学习(六)数据库的备份、还原、导入及导出

MongoDB学习(六)数据库的备份、还原、导入及导出

作者头像
拓荒者
发布2019-06-15 15:15:13
5.2K0
发布2019-06-15 15:15:13
举报
文章被收录于专栏:运维经验分享

MongoDB学习(六)数据库的备份、还原、导入及导出

2017年02月22日 19:17:51 代码与酒 阅读数 21333 标签: 数据库mongodb备份还原 更多

个人分类: MongoDB

所属专栏: MongoDB快速入门

版权声明:原创文章,开放分享,但请客官留个URL,蟹蟹~~如有纰漏,还请指出,以免误导后生! https://blog.csdn.net/qq_16313365/article/details/56494522

        MongoDB官方提供了两套数据导入导出工具,一般来说,进行整库导出导入时使用mongodumpmongorestore,这一对组合操作的数据是BSON格式,进行大量dump和restore时效率较高。

        进行单个集合导出导入时使用mongoexportmongoimport,这一对组合操作的数据是JSON格式,可读性较高。

1、mongodump(备份)及mongorestore(还原)

1.1 mongodump

→说明:

        mongodump是一个用于导出二进制数据库内容的实用工具,它导出的bson文档中只会包含着集合文档等信息,不包括索引信息(索引信息会单独导出),所以还原后,索引必须重建(这个不用担心,使用mongorestore会自动重建mongodump生成的索引信息)。3.4版本中添加了对只读视图的支持。

→参数(以下仅列举常用参数,更多请参考help,下同):

命令

全称

默认值

参考释义

--help

查看mongodump命令的使用帮助

--version

返回mongodump的版本号

-h

--host <hostname><:port>

localhost:27017

指定mongod要连接的主机名及端口号

--port <port>

27017

指定MongoDB实例监听客户连接的TCP端口号

-u

--username <username>

指定用于向使用认证的MongoDB数据库认证的用户名,与--password和 --authenticationDatabase结合使用

-p

--password <password>

指定用于向使用认证的MongoDB数据库认证的密码。与--username和 -- authenticationDatabase选项结合使用。

-d

--db <database>

指定要备份的数据库。如果不指定,mongodump会将此实例中的所有数据库备份。

-c

--collection <collection>

指定要备份的集合。如果不指定,则会将指定数据库或实例中的所有集合备份。

--gzip

3.2版本+,压缩输出,如果mongodump指定导出到目录,则该选项会将每个文件都压缩, 并添加.gz后缀; 如果mongodump指定导出到文档或标准输出流,则该选项会压缩到文档或输出流中

-o

--out <path>

指定导出数据的目录路径,如不指定,则mongodump默认将文件输出到dump所在的工作目录中。 该选项不能和--archive一起使用

→举个栗子:

将mytest数据库中的user集合导出到F:\bk目录下

代码语言:javascript
复制
mongodump -d mytest -c user -o F:\bk

其中的metadata.json即为索引信息

1.2 mongorestore

→说明:

        mongorestore用来导入数据到MongoDB实例中,3.0.0版本以上支持通过标准输入流来导入数据。

→参数:

命令

全称

参考释义

-d

--db <database>

指定要还原的数据库。如果不指定,restore将会还原dump记录的所有数据库,并会覆盖现有数据库数据

-c

--collection <collection>

指定要还原的集合。如果不指定,mongorestore会从文件名中读取识别集合名称(如果有扩展名则会省略扩展名)

--drop

还原集合之前会先从目标数据库中删除集合,不会删除不在备份中的集合。

--gzip

3.2版本+,从压缩文件中还原

<path>

要还原的数据文件路径,该参数必须是mongorestore命令的最后一个参数

其他参数与mongodump基本一致。

→举个栗子:

通过user.bson文件还原mytest数据库中的user集合,并在还原之前进行删除

代码语言:javascript
复制
mongorestore --drop -d mytest -c user F:\bk\mytest\user.bson

2、mongoexport(导出)及mongoimport(导入)

2.1 mongoexport

→参数:

命令

全称

默认值

参考释义

--help

查看mongoexport的使用帮助

--version

查看mongoexport的版本号

-d

--db <database>

指定要在哪个数据库上运行该命令

-c

--collection <collection>

指定要导出的集合

-f

--fields <field1[,field2]>

指定导出时只导出一个或多个字段,导出多个时,需要使用逗号分隔; 当字段中有空格时,需要用英文引号括起来。

-q

--query <JSON>

提供查询文档作为导出数据源

--type<string>

json

指定要导出的文件类型,可选值:json,csv

-o

--out <file>

指定要导出的文件路径(含文件名),如果不指定,则会导出为标准输出(例如stdout)

→举个栗子:

导出mytest数据库中的user集合到user.json文件中

代码语言:javascript
复制
mongoexport -d mytest -c user -o F:\bk\user.json

2.2mongoimport

→参数:

命令

可选值

参考释义

--ignoreBlanks

忽略要导入文件中的空字段,如果不指定该参数,则默认会读取空字段并创建

--type <json|csv|tsv>

json,csv,tsv

要导入的文件类型,另外支持tsv

--headerline

使用第一行作为字段名称

--mode <insert|upsert|merge>

insert(插入), upsert(替换数据库中的文档), merge(合并)

指定导入过程中,如何应对数据库文档与导入文件中的文档匹配 (默认会使用_id字段对比)的情况

 其他参数与mongoexport基本一致

→举个栗子:

从user.json文件导入到mytest数据库中的user集合,并在之前进行删除

代码语言:javascript
复制
mongoimport --drop -d mytest -c user --file F:\bk\user.json

3、使用可视化工具MongoChef(现称Studio3T)导入导出

如图所示,连接之后,选中要导出的数据库或集合,上方菜单栏有Export和Import按钮,根据向导进行操作就可以了,比较简单,相信猿友们都不在话下,就不一一列出了。

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MongoDB学习(六)数据库的备份、还原、导入及导出
  • 1、mongodump(备份)及mongorestore(还原)
    • 1.1 mongodump
      • →说明:
      • →参数(以下仅列举常用参数,更多请参考help,下同):
      • →举个栗子:
    • 1.2 mongorestore
      • →说明:
      • →参数:
      • →举个栗子:
  • 2、mongoexport(导出)及mongoimport(导入)
    • 2.1 mongoexport
      • →参数:
      • →举个栗子:
    • 2.2mongoimport
      • →参数:
      • →举个栗子:
  • 3、使用可视化工具MongoChef(现称Studio3T)导入导出
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档