mongodump是官方提供的一个对数据库进行逻辑导出的备份工具,导出文件为BSON二进制格式,无法使用文本编辑工具直接查看。mongodump可以导出mongod或者mongos实例的数据,从集群模式来看,可以备份单实例、副本集、分片集集群。

mongodump作为MongoDB官方工具集中的一部分,从版本4.4开始,文档说明统一到工具分类中:MongoDB 4.2 社区版本,具体环境如下:

OS:CentOS Linux release 7.6.1810 (Core)

DB version:v4.2.2

因为安装的二进制版本,所以mongodump可执行文件通过解压压缩包就可以得到。

主要选项

mongodump支持的选项不算太多,可以通过--help选项获得:

mongodump --help

Usage:

mongodump Export the content of a running server into .bson files.

选项分为几个大类:

general options:通用选项

connection options:连接选项

ssl options:安全连接选项

authentication options:验证选项

kerberos options:基于kerboeros验证选项

namespace options:命名空间选项

uri options:mongodb uri连接串选项

query options:查询选项

output options:输出选项

verbosity options:显示选项

general options(通用选项)

--help # 打印工具使用方式,选项说明。

--version # 打印工具版本并退出。

connection options(连接选项)

-h, --host=# 指定连接的实例主机名或者IP地址。

--port=# 指定连接的实例端口号。

连接选项也可以分为三种实例模式:单实例、副本集、分片集。

Standalone(单实例)

只指定选项--host

mongodump --host="192.168.196.128:27017"

同时指定选项--host和--port

mongodump --host="192.168.196.128" --port=27017

Replica Set(副本集)

指定选项--host

mongodump --host="dbabdSet/192.168.196.128:27017,192.168.196.128:27018,192.168.196.128:27019"

默认情况下,mongodump读取Primary节点的数据,如果想读取Secondary节点的数据,则需要使用选项readPreference。

mongodump --host="dbabdSet/192.168.196.128:27017,192.168.196.128:27018,192.168.196.128:27019" --readPreference=secondary

Sharded Cluster(分片集群)

同Replica Set(副本集)相同的指定方式。

注意:

--host选项默认值为:localhost:27017

--port选项默认值为:27017

执行副本集的导出备份时通常单独连接某个Secondary节点进行导出备份:

mongodump --host="192.168.196.128:27018"

ssl options(安全连接选项)

--ssl

--sslCAFile=--sslPEMKeyFile=--sslPEMKeyPassword=--sslCRLFile=--sslAllowInvalidCertificates

--sslAllowInvalidHostnames

--sslFIPSMode

authentication options(验证选项)

主要用于验证连接实例的用户的合法性。

-u, --username=# 指定连接用户

-p, --password=# 指定连接用户密码

--authenticationDatabase=# 指定连接用户验证数据库

--authenticationMechanism=# 指定连接验证机制

注意:

如果需要在导出时显示指示输入密码,而不是直接写在选项中,则在指定--username选项的同时,不指定--password或者为--password选项指定一个空值,如:--password ""。

如果没有验证数据库,则mongodump假设指定导出的数据库中包含用户的验证信息,如果没有验证数据库并且也没有指定导出数据库,则mongodump假设admin数据库包含用户的验证信息。

kerberos options(kerboeros验证选项)

该选项主要是基于kerberos验证机制的连接验证选项,kerberos只有MongoDB企业版才支持,本文基于社区版本,有关kerberos可以参考官方文档:

namespace options(命名空间选项)

主要是指定需要逻辑备份的数据库和集合。

-d, --db=# 指定数据库

-c, --collection=# 指定集合

注意:

如果没有指定导出数据库,则mongodump导出实例中所有的数据库,对于集合选项做相同的处理。

uri options(uri连接串选项)

从版本3.4.6开始新增加一种连接MongoDB实例的字符串格式,即URI。

--uri=mongodb-uri # 指定uri连接字符串

Standalone(单实例)

--uri="mongodb://192.168.196.128:27017"

# 开始访问控制验证

--uri="mongodb://dbabd:admin@192.168.196.128:27017/?authSource=admin"

Replica Set(副本集)

--uri="mongodb://192.168.196.128:27017,192.168.196.128:27018,192.168.196.128:27019/?replicaSet=dbabdSet"

# 开始访问控制验证

--uri="mongodb://dbabd:admin@192.168.196.128:27017,192.168.196.128:27018,192.168.196.128:27019/?authSource=admin&replicaSet=dbabdSet"

Sharded Cluster(分片集群)

同Replica Set(副本集)相同的指定方式。

当指定--uri连接串选项时,会与之前有关连接的选项互斥,这些选项包括:

--host

--port

--db

--username

--password(如果--uri连接串有指定连接密码的话)

--authenticationDatabase

--authenticationMechanism

因为--uri连接串中已经包含了以上选项所涉及的部分。

query options(查询选项)

指定mongodump导出的条件,可以参考db.collections.find()方法的查询表达式。

-q, --query=# 指定符合JSON v2拓展格式的查询语句 如:'{"x":{"$gt":1}}'

--queryFile=# 指定包含JSON v2拓民格式查询语句的文件

--readPreference=|# 指定优先读取顺序 如:'nearest' 或 '{mode: "nearest", tagSets: [{a: "b"}],maxStalenessSeconds: 123}')

--forceTableScan # 指定导出时遍历集合使用的索引

注意:

如果指定--query选项,则必须同时指定--collection选项。

mongodump对于副本集默认优先读取primary节点,如果需要从secondary,则指定选项--readPreference=secondary。

mongodump导出时遍历集合时默认使用索引_id,如果要使用其他索引,则指定选项--forceTableScan,该选项没办法确保mongodump导出基于某个时间点的快照,如果需要创建某一时间点的快照,则使用选项--oplog,该选项不能与选项--query一起使用。

output options(输出选项)

指定mongodump导出时保存BSON文件的目录,默认情况下,导出文件保存在执行mongodump当下目录中的dump目录里。

-o, --out=# 指定导出文件保存目录

--gzip # 使用gzip对导出文件进行压缩

--oplog # 指定保存mongodump导出期间的oplog日志,文件名为oplog.bson

--archive=# 指定导出文件合并归档的目的地

--dumpDbUsersAndRoles # 指定导出数据库的用户和角色定义

--excludeCollection=# 指定导出时排除某个集合,如有多个,需要指定多次

--excludeCollectionsWithPrefix=# 指定导出时排除多个相同命名前缀的集合

-j, --numParallelCollections= # 指定导出时可以并行的集合数,默认值为4

--viewsAsCollections # 指定导出时将只读视图当成集合保存成BSON文件

注意:

当指定选项--oplog时,mongodump在导出过程中同时会保存这一时间点产生的oplog,并保存为oplog.bson文件,使导出的备份是实例基于某个时间点的快照,如果使用mongorestore还原进行oplog回放时,需要指定选项--oplogReplay。如果没有指定选项--oplog,则无法保证当前的导出在这一时刻的一致性,在导出过程中有对数据库进行作何的更新操作都会影响导出的文件变化。

如果mongodump指定选项--oplog导出时客户端执行以下命令会导致导出失败:

renameCollection

db.collection.renameCollection()

db.collection.aggregate()并且执行操作符$out

当mongodump连接mongos实例进行整个分片集群的导出备份时,指定选项--oplog是没有生效的,需要对各个分片节点集群单独导出并指定--oplog。

选项--oplog只有在副本集所有成员都开启oplog功能才会生效。

选项--oplog并不会民出保存oplog的集合。

当mongodump指定选项--oplog导出时,必须包括导出实例所有的数据库和集合,即不能指定选项--db只导出某个库或选项--collection只导出某个集合。

verbosity options(显示选项)

指定导出时log输出的显示的详细级别。

-v, --verbose=# 指定日志输出详细级别,如:-vvvvv 或 指定数值

--quiet # 指定不输出作何日志信息

使用示例

备份导出数据库

mongodump -h"192.168.196.128:27017" -uroot --authenticationDatabase admin -d dbabd -o /data/mongodump/

备份导出数据库某个集合

mongodump -h"192.168.196.128:27017" -uroot --authenticationDatabase admin -d dbabd -

c orders -o /data/mongodump/

备份导出排除某个集合

# 如果有多个排除集合,则多次指定选项--excludeCollection

mongodump -h"192.168.196.128:27017" -uroot --authenticationDatabase admin -d dbabd -

-excludeCollection=orders -o /data/mongodump/

备份导出文件归档到文件

mongodump -h"192.168.196.128:27017" -uroot --authenticationDatabase admin -d dbabd --archive=/data/mongodump/dbabd.archive

备份导出文件进行压缩

mongodump -h"192.168.196.128:27017" -uroot --authenticationDatabase admin -d dbabd -

-gzip -o /data/mongodump/

备份导出文件进行压缩并归档

mongodump -h"192.168.196.128:27017" -uroot --authenticationDatabase admin -d dbabd --gzip --archive=/data/mongodump/dbabd.archive

指定条件的备份导出

mongodump -h"192.168.196.128:27017" -uroot --authenticationDatabase admin -d dbabd -c orders -q='{"price":{"$in":[25,50]}}' -o /data/mongodump/

注意

mongodump不会导出有关于local数据库的内容;

mongodump不会导出文档的索引,而只会导出文档的数据,在导出文件还原之后需要重建索引;

对于开启了访问控制机制的实例,mongodump要执行导出操作的话必须对每个需要导出的数据库具有find权限,内建角色backup提供了备份所有数据库的权限,所以可以对用户直接授予backup角色。

总结

对于MongoDB实例的逻辑备份工具,mongodump是个不二选择,官方出品,安全稳定性有保障;

mongodump较适合数据量较少的备份,相对于数据量较大的情况,备份效率不是太高;

mongodump导出时比较消耗服务器性能,而且不支持同时导出多个库,对于导出库数据的最终一致性选项--oplog也只能是全库导出才支持。

参考

☆〖本人水平有限,文中如有错误还请留言批评指正!〗☆

文章来源: www.cnblogs.com,作者:,版权归原作者所有,如需转载,请联系作者。

原文链接:https://www.cnblogs.com/dbabd/p/13139556.html

mongo执行逻辑表达式_MongoDB 逻辑备份工具mongodump相关推荐

  1. mongo执行逻辑表达式_MongoDB 常用查询操作

    MongoDB 查询操作可实现大部分关系型数据库的常用查询操作,本文对 MongoDB 常用查询进行讲解. 在进行操作讲解前,先展示当前 MongoDB 中已存在的文档,集合名称article 条件大 ...

  2. mongo执行逻辑表达式_MongoDB 高级查询

    MongoDB的查询功能非常强大,同时有些地方也会有点复杂.所以需要下点功夫学习和操练才能用好. 关于Mongo Shell 当我们进入Mongo Shell客户端后,实际上是进入了一个Javascr ...

  3. MySQL史上最快逻辑备份工具

    MySQL Shell 8.0.21 增加了一种新的逻辑备份恢复方法,有更快的备份恢复效率,支持zstd实时压缩,支持分块并行导出,load data并行导入,还能备份到OCI的对象存储. util. ...

  4. 【KingbaseES】sys_dump逻辑备份工具详解

    KingbaseES逻辑备份还原工具提供了数据库对象一级的联机备份还原功能,备份对象包括: 数据库 模式 表 视图 约束 权限 触发器 函数 序列 逻辑备份的输出格式包括: 二进制 SQL脚本 此外, ...

  5. postgresql逻辑备份工具pg_dump和pg_resotre学习

    (一)pg_dump备份 pg提供了pg_dump和pg_dumpall命令进行数据库的备份,pg_dumpall是将整个pg集群转储到一个脚本文件中,而pg_dump命令可以选择一个数据库或者部分表 ...

  6. mongo执行逻辑表达式_Mongo学习记录

    引子 最近做项目利用mongo记录的日志做数据统计.着了非关系型数据库的迷,于是乎买了本<MongoDB实战>学习了一番.记录一下学习笔记,共享之. 准备 我在自己的Linux服务器上装了 ...

  7. mysql 商业版备份_MySQL企业版备份工具MEB

    "工欲善其事,必先利其器".数据备份是DBA的日常工作,也是保证数据安全的重要工作,要尽善尽美的完成这项工作,必须要使用一款高效可靠的备份工具.MySQL在其企业版里提供了一款备份 ...

  8. meb备份mysql,MySQL企业版备份工具MEB

    "工欲善其事,必先利其器".数据备份是DBA的日常工作,也是保证数据安全的重要工作,要尽善尽美的完成这项工作,必须要使用一款高效可靠的备份工具.MySQL在其企业版里提供了一款备份 ...

  9. MongoDB数据库备份(mongodump)以及恢复(mongorestore)工具实践

    mongodump备份工具 mongodump能够在Mongodb运行时进行备份,它的工作原理是对运行的Mongodb做查询,然后将所有查到的文档写入磁盘. mongodump的参数与mongoexp ...

最新文章

  1. 软件测试-培训的套路-log3
  2. Tech Websites
  3. 开发者建站免费.或者.收费空间
  4. Mac入门--Apache/Php/Mysql的开启关闭
  5. 数据结构-树与二叉树
  6. 光轴会聚模型求解世界坐标点流程与公式理解
  7. 诗与远方:无题(六十四)- 杂诗
  8. Facebook 开源 3D 深度学习函数库 PyTorch3D,也可用于二维场景
  9. Linux调试工具strace和gdb常用命令小结-转
  10. C#实现实时监控文件目录下的变化
  11. simpleHandleData
  12. CImage类 from http://blog.sina.com.cn/s/blog_487547aa0100an6k.html
  13. PropertyGrid仿VS的属性事件窗口
  14. ipv6 华为交换机 路由配置_华为路由器单臂路由的配置方法及小案例
  15. 短视频APP管理系统源码 直播系统源码
  16. 【WIN】【C++】遍历文件夹下所有文件
  17. 实时音视频 质量测试
  18. cocos2dx 特效 3D特效
  19. linux 环境下安装dubbo管理控制台 dubbo admin
  20. 前端程序员应该去哪个城市发展?

热门文章

  1. 3.onvif实现获取RTMP地址完整流程
  2. 如果伦敦变成了一个巨大的AR涂鸦游戏场……
  3. Day04_vue组件_组件通信_todo案例
  4. PMP 11.27 考试倒计时13天!冲刺啦!
  5. glup前端代码打包的使用
  6. 简单统计商店某商品销售情况
  7. Ubuntu更换软件源
  8. 【Linux进程概念】 (4)进程地址空间
  9. Java字符串截取第一位
  10. 小学生基本的计算机操作知识试题,中小学电脑考试操作题.doc