Mongodb 备份与恢复工具简介

举报
dongdong 发表于 2018/03/18 11:10:46 2018/03/18
【摘要】 Mongodb自带了其备份工具mongodump, 恢复工具 mongorestore, 当然还有 mongoexport 用来进行数据集的导出,mongoimport 进行数据集的导入。这两套工具必然是有差异的,接下来将介绍一下每个工具的使用方式和工具之间的区别和比较。

Mongodb自带了其备份工具mongodump, 恢复工具 mongorestore, 当然还有 mongoexport 用来进行数据集的导出,mongoimport 进行数据集的导入。这两套工具必然是有差异的,接下来将介绍一下每个工具的使用方式和工具之间的区别和比较。

 

mongodump


一般用于全库导出的,用于将数据库的所有数据导出到指定的目录以及导出为指定的压缩文件。常见的参数如下:

 

--uri <connectionString> 3.4.6 新增参数,构造一个要导出的数据库的URL连接字符串,该参数包含了以下参数,并且与以下参数是不相容的。

    •      --host mongodb 服务器所在的地址,如:127.0.0.1 当然也可以带端口。如 127.0.0.1:27017

    •      --port 数据库端口,mongod默认端口为27017,

    •      --db 定义要导出的数据库的名称。默认导出所有数据库记录。

    •      --username 查询数据库时使用的用户名称

    •      --password (when specifying the password as part of the URI connection string) 查询用户的密码

    •      --authenticationDatabase 认证数据库的名称,一般为admin数据库

    •      --authenticationMechanism 认证机制

--out <path>, -o <path> 定义数据库导出的目录位置,默认导出在当前目录下的 dump目录中

 

--gzip 压缩参数。定义导出时,对导出数据进行压缩,一般输出以gz结尾的压缩文件。

 

--archive <file or null> 可以与gzip命令一同使用,定义输出的归档文件名称。不能够同时使用out命令和 archive命令

 

例子:

mongodump –uri mongodb://username:password@host:port/database? AuthSource=admin --archive= database.gz --gzip

 

mongorestore


用于全库导入的,将mongodump导出的文件或压缩文件导入到数据库中。常见参数命令如下:

--uri <connectionString> 3.4.6 新增参数,构造一个要导出的数据库的URL连接字符串.与mongodump参数含义相同。见上

 

--drop 导入数据集合前,先drop 掉数据库中的collection记录。备份文件中没有的collection是不会drop掉的

 

--gzip 压缩参数 恢复使用--gzip参数压缩的备份文件时使用,与--archive 参数共同使用.

 

--archive <=file|null> 定义导入的压缩归档文件名称

 

--dir string 备份文件目录

 

例子:

mongorestore –uri mongodb://username:password@host:port/database? AuthSource=admin --drop --archive= database.gz –gzip

 

mongoexport


用于数据集的导出,常见的参数命令如下:

 

--uri <connectionString> 3.4.6 新增参数,构造一个要导出的数据库的URL连接字符串.与mongodump参数含义相同。见上

 

--db <database>, -d <database> 定义导出的数据库名称

 

--collection <collection>, -c <collection> 定义导出数据集的名称

 

--fields <field1[,field2]>, -f <field1[,field2]> 定义输出的域

 

--query <JSON>, -q <JSON> 定义导出数据的查询过滤器,JSON体格式。

 

--out <file>, -o <file> 定义输出文件的名称

 

--type <string> 定义输出文件的类型,可以为  csv 和 json格式,如果输出文件为 csv格式时,还必须指定--fields 或 –fieldFile 参数。指定输出的域。默认输出json格式。

 

--noHeaderLine 默认情况下, mongoexport字段名作为第一行一个CSV输出。——noheaderline指示mongoexport出口数据没有字段名列表

 

 

例如:

mongoexport --db test--collection test --type csv --fields field1, field2--noHeaderLine --out test.csv

 

mongoimport


用于导入 文档到数据库,常见的参数命令如下:

 

--host <hostname><:port>, -h 服务器所在的地址

 

--port <port> 服务器端口号

 

--username <username>, -u <username> 数据库用户名称

 

--password <password> 数据库用户密码

 

--fields –fieldFile 定义输入的域

 

--file <filename> 定义导入文件的名称

 

--ignoreBlanks 在csv,tsv文件中忽略空域

 

-–headerline 只能用于csv,tsv文件中,用第一行作为文件头

 

--drop 恢复数据前,先drop 掉数据库中的collection记录。

 

--upsert 插入或更新已存在的对象

 

例如:

mongoimport --db test--collection test --type csv –file test.csv

 


区别与比较

 

mongodump 主要导出整个数据库记录,也可某一个数据库记录,或不导出某一数据库的记录。导出的数据库为bson格式。mongodump可以全部兼容所有数据库类型。不会导出索引。导出数据速度快。压缩率好。

 

mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。主要用于数据集导出。此工具导出的json,csv可能对某些数据类型不兼容,因此不能全部数据导出, 导出数据速度相比于mongodump慢。

 

mongorestore用于恢复mongodump导出的备份文件。可以完整导入。在restore的过程中,索引会进行重建。导入速度相对慢。

 

mongoimport 用于恢复mongoexport 导出的文件。由于对某些数据类型不兼容的缘故,所以不能全部导入所有数据。可能会失败。导入速度相对快。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。