第48章:MongoDB-备份和恢复
生成文件系统快照这个方法需要满足两个条件:
1:文件系统本身支持快照技术
2:运行mongod时必须开启日记系统
其恢复就是快照的恢复,当然,恢复的时候,确保mongod没有开启
冷备份:就是把mongod停了,然后拷贝相应的数据文件,最好是把一个数据库相应的数据文件夹完整的拷出,然后恢复的时候完整的拷入。--最简单的
热备份:就是mongod在运行中,可以使用db.fsyncLock();来锁定数据库,然后进行数据文件的拷贝,拷贝完成后,使用db.fsyncUnLock();解除锁定。恢复的时候,需要把mongod停了,然后把文件拷入。
这个方式有些缺点,比如速度慢,处理副本集的时候也很容易出问题。但对于单独的数据库和集合还是一个好选择的。
mongodump的参数与mongoexport的参数基本一致
|
参数 |
参数说明 |
|
-h |
指明数据库宿主机的IP |
|
-u |
指明数据库的用户名 |
|
-p |
指明数据库的密码 |
|
-d |
指明数据库的名字 |
|
-c |
指明collection的名字 |
|
-o |
指明到要导出的文件名 |
|
-q |
指明导出数据的过滤条件 |
|
--authenticationDatabase |
验证数据的名称 |
|
--gzip |
备份时压缩 |
|
--oplog |
use oplog for taking a point-in-time snapshot |
mongodump参数实践
全库备份
备份test库
备份test库下的vast集合
压缩备份库
压缩备份单表
mongorestore与mongoimport参数类似
|
参数 |
参数说明 |
|
-h |
指明数据库宿主机的IP |
|
-u |
指明数据库的用户名 |
|
-p |
指明数据库的密码 |
|
-d |
指明数据库的名字 |
|
-c |
指明collection的名字 |
|
-o |
指明到要导出的文件名 |
|
-q |
指明导出数据的过滤条件 |
|
--authenticationDatabase |
验证数据的名称 |
|
--gzip |
备份时压缩 |
|
--oplog |
use oplog for taking a point-in-time snapshot |
|
--drop |
恢复的时候把之前的集合drop掉 |
全库备份中恢复单库(基于之前的全库备份)
恢复test库
恢复test库下的vast集合
--drop参数实践恢复
只针对replica或master/slave,满足这些准则MongoDB就可以进行point-in-time恢复操作:
1任意两次数据备份的时间间隔(第一次备份开始到第二次备份结束)不能超过oplog时间窗口覆盖范围。
2在上次数据备份的基础上,在oplog时间窗口没有滑出上次备份结束的时间点前进行完整的oplog备份。请充分考虑oplog备份需要的时间,权衡服务器空间情况确定oplog备份间隔。
实际应用中的注意事项:
- 考虑到oplog时间窗口是个变化值,请关注oplog时间窗口的具体时间。
- 在靠近oplog时间窗口滑动出有效时间之前必须要有足够的时间dump出需要的oplog.rs,请预留足够的时间,不要顶满时间窗口再备份。
- 当灾难发生时,第一件事情就是要停止数据库的写入操作,以往oplog滑出时间窗口。特别是像上述这样的remove({})操作,瞬间就会插入大量d记录从而导致oplog迅速滑出时间窗口。
分片集群的备份注意事项
1、备份什么?
(1)configserver
(2)每一个shard节点
2、备份需要注意什么?
(1)元数据和真实数据要有对等性(blancer迁移的问题,会造成config和shard备份不一致),要进行分片集备份,需要先关闭均衡器。
(2)不同部分备份结束时间点不一样,恢复出来的数据就是有问题的。建议对备份节点进行备份,最好是采用复制文件系统的方式。
1 MongoDB云数据库备份/恢复
备份策略:
- 从hidden节点备份
- 每天一次全量备份
- 持续拉取oplog增量备份
- 定期巡检备份有效性
- 恢复时克隆到新实例
2 全量备份方法
3 逻辑备份流程 - mongodump
特点:
- 全量遍历所有数据、
- 备份、恢复慢
- 对业务影响较大
- 无需备份索引、恢复时重建
- 通用性强
4 物理备份流程
备份特点
- 拷贝数据目录所有文件,效率高
- 备份、恢复快
- 对业务影响较小
- 跟数据库版本、配置强关联
5 逻辑备份 vs 物理备份
|
逻辑备份 |
物理备份 |
|
|
备份效率 |
低 数据库接口读取数据 |
高 拷贝物理文件 |
|
恢复效率 |
低 下载备份集 + 导入数据 + 建立索引 |
高 下载备份集 + 启动进程 |
|
备份影响 |
大 直接与业务争抢资源 |
小 |
|
备份集大小 |
比原库小 无需备份索引数据 |
与原库相同 |
|
兼容性 |
兼容绝大部分版本 可跨存储引擎 |
依赖存储布局 |
第48章:MongoDB-备份和恢复的更多相关文章
- MongoDB 备份(mongodump)恢复(mongorerstore) 导出 (Mongoexport) 导入( Mongoimport)
MongoDB 备份(mongodump) 在Mongodb中我们使用mongodump命令来备份MongoDB数据.该命令可以导出所有数据到指定目录中. mongodump命令可以通过参数指定导出的 ...
- 通过mongodump和mongorestore实现Mongodb备份和恢复
Mongodb自带了mongodump和mongorestore这两个工具来实现对数据的备份和恢复. mongodump能够在Mongodb运行时进行备份,它的工作原理是对运行的Mongodb做查询, ...
- MongoDB备份和恢复
mongodump备份数据 该命令可以导出所有数据到指定目录中, 也能通过参数指定备份服务器 mongodump -h dbhost -d dbname -o dbdirectory dbhost: ...
- MongoDB初试备份及恢复
MongoDB作为文档数据库,有 1.登录MongoDB官网,地址:https://www.mongodb.com/download-center#community , 根据自己操作系统下载相应版 ...
- MongoDB备份(mongodump)和恢复(mongorestore)
MongoDB提供了备份和恢复的功能,分别是MongoDB下载目录下的mongodump.exe和mongorestore.exe文件 1.备份数据使用下面的命令: >mongodump -h ...
- MongoDB整库备份与还原以及单个collection备份、恢复方法
mongodb数据库维护离不开必要的备份.恢复操作,而且一般不会出错,所以我们在使用的时候大部分时候使用备份和恢复操作就可以了 mongodump.exe备份的原理是通过一次查询获取当前服务器快照 ...
- MongoDB学习总结(六) —— 数据库备份和恢复
我们都知道数据库数据经常备份是多么的重要,MongoDB作为一个数据库系统,自然提供了完善,丰富而且好用的备份与恢复机制. 以下介绍三种数据库备份和恢复的方式 > 数据目录直接拷贝 数据库目录直 ...
- 第五章 MySQL事务,视图,索引,备份和恢复
第五章 MySQL事务,视图,索引,备份和恢复 一.事务 1.什么是事务 事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求.要么都执行 ...
- MongoDB 备份(mongodump)与恢复(mongorestore)
MongoDB 备份(mongodump)与恢复(mongorestore) 备份:使用mongodump命令导出所有数据库到指定目录 参数说明: --host:MongoDB所在服务器IP. -- ...
随机推荐
- Codeforces Round #436 B. Polycarp and Letters
题意:给你一串长度为n的字符,由大小写字母组成,求连续的小写子串中不同字母个数的最大值. Input 11aaaaBaabAbA Output 2 Input 12zACaAbbaazzC Outpu ...
- 使用MagickNet编辑图片
ImageMagick是一个免费的创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片.图片切割.颜色替换.各种效果的应用,图片的旋转.组合,文本,直线,多边形,椭圆,曲线 ...
- 树的遍历——c#实现
树作为一种重要的非线性数据结构,以分支关系定义其层次结构,在客观世界中应用广泛.通过对树遍历,将树进行线性化处理,即遍历的结果是将非线性结构的树种节点排列成一个线性序列.其中,最常见的遍历方式包括先序 ...
- ucos中需要注意的全局变量
首先聊一聊全局变量: 在慕课上学习浙大老师的C语言课程的时候,翁恺老师一直在强调在程序中我们要避免使用全局变量,C语言的程序员(尤其像我这样的野生程序员)为了方便,经常会不顾这个编码规范.全局变量有一 ...
- java第四章接口
接口(interface) 语法:修饰符 interface 接口名 extends 父接口1,父接口2....{ //常量定义 //方法定义} class 类名 extends 父类名 impl ...
- DIV+CSS详解
DIV+CSS详解 ✪DIV+CSS"这种叫法其实是一种不准确的叫法 在做笔记的最前面必须先给大家纠正一个错误,就是"DIV+CSS"这种叫法其实是一种不准确的叫法,是国 ...
- AHB协议整理 AMBA
本文对AHB协议作了简单整理,整理自两篇文章: AHB总线协议 AHB重点难点总结 1. 简介 AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计 ...
- (4)Linux常用基本操作
1.ping和traceroute 指定源IP ping:ping -I 源 目的 #I为大写的i 带源地址路由tracert:traceroute -d <目标地址> -s < ...
- Vue源码学习(二)$mount() 后的做的事(1)
Vue实例初始化完成后,启动加载($mount)模块数据. (一)Vue$3.protype.$mount 标红的函数 compileToFunctions 过于复杂,主要是生 ...
- IDEA配置
关于IDEA的配置 配置注释模板 CTRL_SHIFT_S,在Live Templates中新增一个TemplateGroup,然后再新建两个模板,如下图: 新增cc-ClassComment /** ...