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. HTML(五)选择器--伪类选择器

    HTML代码 <body> <a href="www.baidu.com">www.baidu.com</a> </body> CS ...

  2. jenkins部署java项目在本地(三)

    (1)新建maven构建的java项目 pom.xml的配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...

  3. Android开发 ---基本UI组件2:图像按钮、单选按钮监听、多选按钮监听、开关

    Android开发 ---基本UI组件2 1.activity_main.xml 描述: 定义一个按钮 <?xml version="1.0" encoding=" ...

  4. Android开发---如何操作资源目录中的资源文件

    效果图: 1.activity_main.xml <?xml version="1.0" encoding="utf-8"?> <Linear ...

  5. codeforce949A(顺带vector详细使用介绍)

    A. Zebras time limit per test1 second memory limit per test512 megabytes inputstandard input outputs ...

  6. 使用ext httpProxy代理获取列表但列表展示不全的问题解决

    今天项目中遇到一个奇葩的事情,使用ext的jsonstore通过httpproxy代理想要获取一个列表,页面显示是有五条数据的但是却只展示了2条,于是各种排查,后台确定无误后开始检查前台,发现浏览器中 ...

  7. leetcode第39题:组合综合

    给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限制重复被选 ...

  8. dos命令:目录操作

    目录操作 一.cd语句 1.介绍 ​ 显示当前目录名或改变当前目录. 2.语法 CHDIR [/D] [drive:][path] CHDIR [..] CD [/D] [drive:][path] ...

  9. 32位linux(ubuntu) exec: arm-none-linux-gnueabi-g++未找到;The tslib functionality test failed!

    请先参考:http://blog.csdn.net/ankwyq/article/details/7768809 通过上面那篇文章,我确实把问题又推进了一步,接下来就是下面这个问题: exec: ar ...

  10. MFC 添加背景图片并让控件背景透明

    /*添加背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDialog::OnEraseBkg ...