1,mongodb所有组件
官方文档地址:https://docs.mongodb.com/manual/reference/command/,所有的基础组件都在里面,包括备份恢复的mongodump、mongorestore,如01.png所示:

2,备份组件mongodump 概要
mongodump is a utility for creating a binary export of the contents of a database. mongodump can export data from either mongod or mongos instances.

mongodump can be a part of a backup strategy with mongorestore for partial backups based on a query, syncing from production to staging or development environments, or changing the storage engine of a standalone. However, the use of mongodump and mongorestore as a backup strategy can be problematic for sharded clusters and replica sets.

# 翻译如下

Mongodump是将mongodb数据库内容以二进制日志的方式导出的组件函数。Mongodump和mongostore一起可以作为mongodb的备份策略的模块,可以同步生产环境到临时环境库以及开发环境库,或者也可以改变单机环境的存储引擎。然而作为备份策略方案mongodump和mongostore也能适用于cluster集群和replica-sets副本集。

Mongodump不备份索引数据,在做mongostore的时候会自动重建索引

mongodump can adversely affect performance of the mongod. Ifyour data is larger than system memory, themongodump will pushthe working set out of memory.

意味着如果数据所占据的容量远远大于系统内存,那么,mongodb将不在内存里面进行操作(字面理解)。

3,备份单个collection
mongodump  --db test --collection collection

/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongodump-hlocalhost --port 30000 -d parking -c enter  -o /data/mongodb/0626/enter.csv

备份控制台信息:

[mongodb@db_mongodb_1 backup]$ /usr/local/mongodb-linux-x86_64-3.0.3/bin/mongodump -hlocalhost --port 30000 -d parking -c enter   -o /data/mongodb/0626/enter.csv

2016-06-26T21:57:31.408+0800    writing parking.enter to /data/mongodb/0626/enter.csv/parking/enter.bson

2016-06-26T21:57:33.858+0800    [........................]  parking.enter  141864/4843440  (2.9%)

2016-06-26T21:57:36.855+0800    [#.......................]  parking.enter  374518/4843440  (7.7%)

……………………
2016-06-26T21:58:21.855+0800    [#######################.]  parking.enter  4654865/4843440  (96.1%)

2016-06-26T21:58:23.696+0800    writing parking.enter metadata to /data/mongodb/0626/enter.csv/parking/enter.metadata.json

2016-06-26T21:58:23.698+0800    done dumping parking.enter

[mongodb@db_mongodb_1 backup]$

4,备份sharding库
Mongodump可以在mongos上面进行备份,在后面添加mongos的端口就可以了,备份所有库命令如下:

# 创建备份目录

mkdir /data/mongodb/backup/20160626

# 开始备份

time /usr/local/mongodb-linux-x86_64-3.0.3/bin/mongodump --host localhost:30000   -o /data/mongodb/backup/20160626

备份是多进程的,4个进程一起备份(N核就是N个进程),控制台显示信息:

# 备份控制台信息:

…..

2016-06-26T16:42:58.398+0800     [#.......................]           pv.mobile  3184618/62143101   (5.1%)

2016-06-26T16:42:58.398+0800     [#####...................]  traffice.passenger  4982012/23503868  (21.2%)

2016-06-26T16:42:58.398+0800     [........................]             pv.stat    108114/3739398   (2.9%)

2016-06-26T16:42:58.398+0800     [###.....................]       parking.leave    402109/2920264  (13.8%)

2016-06-26T16:42:58.398+0800

2016-06-26T16:43:01.397+0800     [#.......................]           pv.mobile  3209372/62143101   (5.2%)

2016-06-26T16:43:01.397+0800     [#####...................]  traffice.passenger  5222668/23503868  (22.2%)

2016-06-26T16:43:01.397+0800     [........................]             pv.stat    124667/3739398   (3.3%)

2016-06-26T16:43:01.397+0800     [####....................]       parking.leave    551075/2920264  (18.9%)

2016-06-26T16:43:01.397+0800

2016-06-26T16:43:04.396+0800     [#.......................]           pv.mobile  3218224/62143101   (5.2%)

2016-06-26T16:43:04.396+0800     [#####...................]  traffice.passenger  5461117/23503868  (23.2%)

2016-06-26T16:43:04.396+0800     [........................]             pv.stat    141247/3739398   (3.8%)

2016-06-26T16:43:04.396+0800     [#####...................]       parking.leave    706371/2920264  (24.2%)

……

备份结果统计:

# 备份完,大概40G,所花费时间大概20分钟

[mongodb@db_mongodb_1 backup]$ du -sh 20160626

41G  20160626

[mongodb@db_mongodb_1 backup]$

# 然后解压缩,大概需要20分钟

[mongodb@db_mongodb_1 backup]$ time tar -zcvf 20160626.tar.gz 20160626

……

20160626/ibeacon/usercoord.metadata.json

20160626/ibeacon/system.indexes.bson

20160626/ibeacon/usercoord.bson

real  19m48.689s

user 17m33.293s

sys   1m7.212s

[mongodb@db_mongodb_1 backup]$

5,备份用户登录验证
In the next example, mongodump creates a database dump located at /data/backup/mongodump-2016-06-26, from a database running on port 37017 on the host mongodb1.example.net and authenticating using the username user and the password pass,as follows:

mongodump --host mongodb1.example.net --port 37017 --username user --password pass --out /data/backup/mongodump-2016-06-26

6,压缩备份
To compress thefiles in the output dump directory, run mongodump with the new --gzip option. For example, the following operation outputs compressedfiles into the default dump directory.

mongodump --gzip --db test
PS:此mongodb版本必须不低于3.2:

--gzip¶

New in version 3.2.

Compresses the output. If mongodump outputs to the dump directory, the new feature compresses the individual files. The files have the suffix .gz.

If mongodump outputs to an archive file or the standard out stream, the new feature compresses the archive file or the data output to the stream.

7,设立自动备份任务
全面理解了mongodb的mongodump备份组件后,可以设置crontab任务做到每天自动备份mongodb数据,可以在shareding集群的:

# 编写简洁的备份脚本

[root@db_mongodb_1 ~]# more /data/mongodb/backup/full_backup.sh

#!/bin/sh

export DATE=`date +%F`

export BACK_DIR='/data/mongodb/backup'

su - mongodb -c "

mkdir -p $BACK_DIR/$DATE

/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongodump --host localhost:30000 -o $BACK_DIR/$DATE

tar -zcvf $BACK_DIR/$DATE.tar.gz $BACK_DIR/$DATE

"

[root@db_mongodb_1 ~]#

# 设置备份任务

[root@db_mongodb_1 ~]# crontab -l

1 30 * * * sh /data/mongodb/backup/full_backup.sh

[root@db_mongodb_1 ~]#
---------------------
作者:忆平齐
来源:CSDN
原文:https://blog.csdn.net/mchdba/article/details/51765021
版权声明:本文为博主原创文章,转载请附上博文链接!

mongodb 通过mongodump来备份Sharded Cluste分片集群的更多相关文章

  1. mongodump备份小量分片集群数据

    1.使用mongodump备份小量分片集群数据 如果一个分片集群的数据集比较小,可以直接使用mongodump连接到mongos实例进行数据备份.默认情况下,mongodump到非primary的节点 ...

  2. MongoDB最新4.2.7版本三分片集群修改IP实操演练

    背景 重新组网,需要对现有MongoDB分片集群服务器的IP进行更改,因此也需要对MongoDB分片集群的IP也进行相应的更新,而MongoDB分片集群的IP修改不能单纯的通过配置来进行,需要一番折腾 ...

  3. MongoDB 分片集群搭建

    一.概述 分片是一种在多台机器上分配数据的方法.MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作.有两种解决系统增长的方法:垂直扩展和水平扩展. 垂直扩展涉及增加单个服务器的容量,例如使用 ...

  4. MongoDB分片集群-Sharded Cluster

    分片概念 分片(sharding)是一种跨多台机器分布数据的方法, MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署. 换句话说:分片(sharding)是指将数据拆分,将其分散存在 ...

  5. MongoDB之分片集群与复制集

    分片集群 1.1.概念 分片集群是将数据存储在多台机器上的操作,主要由查询路由mongos.分片.配置服务器组成. ●查询路由根据配置服务器上的元数据将请求分发到相应的分片上,本身不存储集群的元数据, ...

  6. Mongodb分片集群技术+用户验证

    随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,“分片”就用这个来解决这个问题. 从图中可以看到有四个组件:mongos.config server. ...

  7. MongoDB 分片集群技术

    在了解分片集群之前,务必要先了解复制集技术! 1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这 ...

  8. 网易云MongoDB分片集群(Sharding)服务已上线

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MongoDB sharding cluster(分片集群)是MongoDB提供的数据在线水平扩展方案,包括 ...

  9. (转)MongoDB 分片集群技术

    1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础. 1.1.1 复制集的目的 ...

随机推荐

  1. 【资料收集】QT学习资料

    几个专栏 Qt学习之路(3):Hello, world!(续) - 豆子空间 - 51CTO技术博客 http://devbean.blog.51cto.com/448512/194137 Qt 学习 ...

  2. day29 socketsever ftp功能简单讲解

    今日所学 一.ftp上传简单实例 二.socketsever的固定用法 三.验证合法性连接 1.ftp上传实例 这个题目是我们现在网络编程比较基础一点的题目 下面我们只写简单上传的代码 上传服务端的代 ...

  3. IDEA使用GitHub托管代码

    该方法基本也适用于JetBrains公司的其他IDE产品,如phpStorm,PyCharm等. 首先,在github官网注册一个账号,参考:http://stormzhang.com/github/ ...

  4. LeetCode 151 翻转字符串里的单词

    题目: 给定一个字符串,逐个翻转字符串中的每个单词. 示例 1: 输入: "the sky is blue" 输出: "blue is sky the" 示例 ...

  5. Office 365 企业应用以及服务概览 分享记录

    博客地址:http://blog.csdn.net/FoxDave 分享时间: 2017年9月14日 分享地点: 部门内部 参与人数: 16人 分享内容: 讲解微软MVP项目计划的相关内容:讲解O ...

  6. SharePoint Framework 企业向导(二)

    博客地址:http://blog.csdn.net/FoxDave 开发者视角 SharePoint开发者,无论是新手还是有经验的,都可以从SPFx中获取一些东西.当前SPFx的发布版本专注于以一 ...

  7. MVC4中使用Uploadify3.2

    你使用过 GMail 中附件上传吗?带有上传进度,可以取消正在进行的上传,使用 Uploadify 插件,你也可以做到. Uploadify 是 JQuery 一个著名的上传插件,利用 Flash 技 ...

  8. mysql 数据库关于增加用户权限的问题

    一新建用户 ----------- 二首先修改权限必须在电脑cmd 中运行 开设的权限  主要就是 1 所有库的  *.*      2  所有的表   db.*      3所有的字段db.t1   ...

  9. react 学习笔记 npm 命令

    第一步: cnpm install --save react react-dom babelify babel-preset-react 第二步: 安装es2015 cnpm install babe ...

  10. Java学习笔记28(IO字节流)

    IO定义: 写:Output操作:将内存上的数据持久化 到设备上,这个动作称为输出: 读:Input操作:把硬盘上的东西读取到内存,这个动作称为输入:              这两种操作称为IO流 ...