mongodb 通过mongodump来备份Sharded Cluste分片集群
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分片集群的更多相关文章
- mongodump备份小量分片集群数据
1.使用mongodump备份小量分片集群数据 如果一个分片集群的数据集比较小,可以直接使用mongodump连接到mongos实例进行数据备份.默认情况下,mongodump到非primary的节点 ...
- MongoDB最新4.2.7版本三分片集群修改IP实操演练
背景 重新组网,需要对现有MongoDB分片集群服务器的IP进行更改,因此也需要对MongoDB分片集群的IP也进行相应的更新,而MongoDB分片集群的IP修改不能单纯的通过配置来进行,需要一番折腾 ...
- MongoDB 分片集群搭建
一.概述 分片是一种在多台机器上分配数据的方法.MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作.有两种解决系统增长的方法:垂直扩展和水平扩展. 垂直扩展涉及增加单个服务器的容量,例如使用 ...
- MongoDB分片集群-Sharded Cluster
分片概念 分片(sharding)是一种跨多台机器分布数据的方法, MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署. 换句话说:分片(sharding)是指将数据拆分,将其分散存在 ...
- MongoDB之分片集群与复制集
分片集群 1.1.概念 分片集群是将数据存储在多台机器上的操作,主要由查询路由mongos.分片.配置服务器组成. ●查询路由根据配置服务器上的元数据将请求分发到相应的分片上,本身不存储集群的元数据, ...
- Mongodb分片集群技术+用户验证
随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,“分片”就用这个来解决这个问题. 从图中可以看到有四个组件:mongos.config server. ...
- MongoDB 分片集群技术
在了解分片集群之前,务必要先了解复制集技术! 1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这 ...
- 网易云MongoDB分片集群(Sharding)服务已上线
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MongoDB sharding cluster(分片集群)是MongoDB提供的数据在线水平扩展方案,包括 ...
- (转)MongoDB 分片集群技术
1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础. 1.1.1 复制集的目的 ...
随机推荐
- Oracle 12c的自增列Identity Columns
在Oracle的12c版本中,Oracle实现了类似MySQL中的auto_increment的自增列,下面我们看一起Oracle是怎么实现的. Oracle Database 12c Enterpr ...
- 经典面试题sql基础篇-50常用的sql语句(有部分错误)
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题 ...
- css选择器思维导图
- 4.1 C++多态的概念及前提条件
参考:http://www.weixueyuan.net/view/6370.html 总结: 而多态的功能则是将函数名动态绑定到函数入口地址,这样的动态绑定过程称为运行期绑定. 而在运行期绑定的函数 ...
- MySQL输入密码后闪退
刚刚我遇到这个问题,服务里MySQL是启状态的,所以我求助百度,发现很多种说法,我试了几个,还是不行,后来想起来我的密码不对,于是换了正确的密码试了一下,没毛病,进去了. 所以输入密码闪退时,首先确定 ...
- Spring学习二
Spring的表达式语言 SpEL,使用方法是#{} SpEL的特性如下 使用Bean 的ID 来引用Bean : 调用方法和访问对象的属性: 对值进行算术.关系和逻辑运算: 正则表达式匹配: 集合操 ...
- L270 运动前要热身
If I'm being really honest, the only time I actually remember to stretch before a workout is when I' ...
- ios UITableView背景图片设置
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPa ...
- json pickle xml shelve configparser
json:# 是一种跨平台的数据格式 也属于序列化的一种方式pickle和shevle 序列化后得到的数据 只有python才可以解析通常企业开发不可能做一个单机程序 都需要联网进行计算机间的交互 J ...
- web.config 冲突的解决办法 (主目录子目录分别帮定域名导至出现错误)
IIS上在主站点下搭建虚拟目录后,子站点中的<system.web>节点与主站点的<system.web>冲突解决方法: 在主站点的<system.web>上一级添 ...