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 复制集的目的 ...
随机推荐
- django 中下载文件与下载保存为excel
一.django 中下载文件 在实际的项目中很多时候需要用到下载功能,如导excel.pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍dja ...
- day29 socketsever ftp功能简单讲解
今日所学 一.ftp上传简单实例 二.socketsever的固定用法 三.验证合法性连接 1.ftp上传实例 这个题目是我们现在网络编程比较基础一点的题目 下面我们只写简单上传的代码 上传服务端的代 ...
- ubuntu下修改MYSQL数据库密码
在介绍修改密码之前,先介绍一个文件/etc/MySQL/debian.cnf.其主要内容如下图: 里面有一个debian-sys-maint用户,这个用户只有Debian或Ubuntu服务器才有,所以 ...
- Cracking The Coding Interview 4.0_二叉树
#include <iostream> #include <string> using namespace std; class tree { public: tree() { ...
- html回顾随笔JS(*^__^*)
---恢复内容开始--- map遍历 function b(){ var week = new Map(); week.set("Mon","星期一"); we ...
- ubuntu 实用命令收集
dig 查看域名解析 最下面server为DNS解析地址 dig google.com sudo -s 转为root方式 curl ip.gs 获取本机外网的ip地理地址 开启ipv4转发功能 /et ...
- git工具学习
最近实习的时候,遇到git工具,发现好强大之前没用过,特来学习下,然后自己注册了一个github账号,结合git命令练习一下,git的安装就不说了. 学习资料来源:廖雪峰Git教程 git简介: gi ...
- 解决At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs
在写spring security小程序时遇到 At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug l ...
- python 递归进阶操作方法
递归 在函数内部,可以调用其他函数; 如果一个函数在内部调用自身本身,这个函数就是递归函数. 例如,我们来计算阶乘: n! = 1 x 2 x 3 x ... x n, 用函数f1(n)表示,可以看出 ...
- ArrayList方法综合练习
package com.zs.windows; import java.util.ArrayList; import java.util.Scanner; import com.zs.entity.G ...