mongodb 备份压缩_MongoDB-备份和恢复
一、工具介绍
(1)mongoexport/mongoimport #导入/导出的是JSON格式或者CSV格式
(2)mongodump/mongorestore #导入/导出的是BSON格式
二、备份工具区别
(1)JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。
(2)在一些mongodb版本之间,BSON格式可能会随版本不同而有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是一个可选项。跨版本的mongodump/mongorestore个人并不推荐,实在要做请先检查文档看两个版本是否兼容(大部分时候是的)。
(3)JSON虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意。
三、应用场景
mongoexport/mongoimport: json csv异构平台迁移 mysql mongodb
同平台,跨大版本:mongodb 2 ----> mongodb 3
mongodump/mongorestore:日常备份恢复使用
4.1、导出工具mongoexport
Mongodb中的mongoexport工具可以把一个collection导出成JSON格式(默认)或CSV格式的文件。
可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。适合如下场景:(1)版本差异较大
(2)异构平台数据迁移
4.1.1、具体参数说明
4.1.2、应用例子
创建测试数据:
1)单表备份至json格式
操作过程:
2)单表备份至csv格式
操作过程:
Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据。
4.2.1、具体参数说明
4.2.2、应用例子
1)恢复json格式表数据到log1
操作过程:
2)
恢复csv格式的文件到log2
导入CSV格式文件中的内容,则需要通过--type参数指定导入格式
①当csv格式的文件头行,有列名字
②当csv格式的文件头行,没有列名字 ==>手工添加列名
3)案例:mysql表导入mongodb
示例:mysql 的world数据库下city表进行导出,导入到mongodb
4)
mysql表批量导入mongodb脚本
5.1、介绍
mongodump能够在Mongodb运行时进行备份,它的工作原理是对运行的Mongodb做查询,然后将所有查到的文档写入磁盘。但是存在的问题时使用mongodump产生的备份不一定是数据库的实时快照,如果我们在备份时对数据库进行了写入操作,则备份出来的文件可能不完全和Mongodb实时数据相等。另外在备份时可能会对其它客户端性能产生不利的影响。
5.3、
mongodump和mongorestore基本使用
5.3.1、全库备份
5.3.2、备份world库
5.3.3、备份world库下的city集合
5.3.4、压缩备份
5.3.5、
恢复world库
5.3.6、恢复world库下的city集合
5.3.7、--drop表示恢复的时候把之前的集合drop掉(危险)
六、Oplog
注意:这是replica set或者master/slave模式专用
--oplog:use oplog for taking a point-in-time snapshot
6.1、oplog介绍
1)在replica set中oplog是一个定容集合(capped collection),它的默认大小是磁盘空间的5%(可以通过--oplogSizeMB参数修改),位于local库的db.oplog.rs。
2)其中记录的是整个mongod实例一段时间内数据库的所有变更(插入/更新/删除)操作。
3)当空间用完时新记录自动覆盖最老的记录。#最好按全备的一个周期来设置
4)其覆盖范围被称作oplog时间窗口。需要注意的是,因为oplog是一个定容集合,所以时间窗口能覆盖的范围会因为你单位时间内的更新次数不同而变化。
6.2、oplog查看
查看oplog窗口预计覆盖时间:
6.3、oplog应用
实现热备,在备份时使用--oplog选项
1)准备测试数据
2)
oplog 配合mongodump实现热备
3)恢复
4)查看
6.4、oplog案例
6.4.1、背景
每天0点全备,oplog恢复窗口为48小时
某天,上午10点world.city 业务表被误删除
6.4.2、恢复思路
1、停应用
2、找测试库
3、恢复昨天晚上全备
4、截取全备之后到world.city误删除时间点的oplog,并恢复到测试库
5、将误删除表导出,恢复到生产库
6.4.3、恢复步骤
1)模拟故障环境
2)模拟10点误删除表city
3)备份现有的oplog.rs表
4)登录原数据库,截取oplog到drop之前的位置
5)恢复备份,应用oplog
6)查看备份的数据
mongodb 备份压缩_MongoDB-备份和恢复相关推荐
- mongodb 备份压缩_MongoDB 备份方法
参考官方文档: https://docs.mongodb.com/manual/core/backups/ 使用文件系统快照进行备份和重建 本文档介绍了使用系统级工具(如LVM或存储设备)创建Mong ...
- mongodb 备份压缩_MongoDB备份方案
如果在 mongodump 创建备份的同时,应用对数据进行修改,那么 mongodump 将会与这些应用竞争资源.¶ You can create a backup of a MongoDB depl ...
- mongodb 备份压缩_MongoDB的备份与恢复
1.1 MongoDB的常用命令 mongoexport /mongoimport mongodump/ mongorestore 有以上两组命令在备份与恢复中进行使用. 1.1.1 导出工具mong ...
- mongodb 备份压缩_MongoDB 如何实现备份压缩
背景及原理 数据库的备份是灾难恢复的最后一道屏障,不管什么类型的数据库都需要设置数据库备份,MongoDB也不例外.MongoDB 3.0 后 ,数据库可以采用Wiredtiger存储引擎后(3.2 ...
- mongodb 备份压缩_MongoDB实现备份压缩的方法教程
背景及原理 数据库的备份是灾难恢复的最后一道屏障,不管什么类型的数据库都需要设置数据库备份,MongoDB也不例外.MongoDB 3.0 后 ,数据库可以采用Wiredtiger存储引擎后(3.2 ...
- mongo备份索引_MongoDB——备份 恢复 索引 hashed片键
备份库 mongodump -h 127.0.0.1 -d loginserver -o /root/data/soft/mongodb/backup/ 恢复库 mongorestore -h 127 ...
- MongoDB的数据库如何备份和恢复?
摘要: MongoDB数据库如何备份?恢复MongoDB数据库应如何操作?最近数据库多灾多难,这些问题也成为开发者关注的重点.2016年12月爆出MongoDB数据库安全问题(见MongoDB黑客赎金 ...
- MongoDB数据库备份(mongodump)以及恢复(mongorestore)工具实践
mongodump备份工具 mongodump能够在Mongodb运行时进行备份,它的工作原理是对运行的Mongodb做查询,然后将所有查到的文档写入磁盘. mongodump的参数与mongoexp ...
- MongoDB的备份(mongodump)与恢复(mongorestore)
为什么80%的码农都做不了架构师?>>> 不用多想,数据的备份无论什么时候都是必须的,尤其是重要数据. MongoDB也提供了备份和恢复的功能,分别是MongoDB下载目录下的 ...
最新文章
- 仅用2年过渡到自研ARM芯片,苹果的底气从何而来?
- SD--RV_accounting_document_create函数的代码解读
- evaluate函数使用无效_我用这个Excel函数,秀了同事一脸!很多人却连它名字都没听过...
- Java BufferedReader skip()方法与示例
- python面向对象怎么解决_Python面向对象编程1
- oracle catalog命令,使用Catalog命令注册RMAN备份集
- 菜鸟python实例_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...
- python程序设计基础教程答案山东联盟答案_知到Python程序设计基础(山东联盟)测试答案-查询...
- ev3编程变量模块_【EV3基础编程 第八课】升阶学习难度,一对一个性化控制程序,变量来了...
- powerdesigner中cmd模型中多对多_[进行中]美的多多进宝日
- JavaWeb - 常用的HTTP请求头与响应头
- 中心极限定理 central limit theorem
- IDEA改变背景颜色(护眼色)
- 什么是中性滤光片?有什么作用?
- 从物理意义上了解PCA
- 实用网站、软件、App分享(计算机专业)
- cocos2d-x 3.0 Win7 + VS2012 下实现贪吃蛇小游戏
- 文件或目录windows/temp/explorer.exe损坏且无法读取 请运行chkdsk工具
- 我的一年AI算法工程师成长记
- git clone 出现fatal: unable to access https://github 解决方法
热门文章
- 基于JAVA+SpringBoot+Mybatis+MYSQL的小区物业管理系统
- markdown html图片,Markdown语法对应的HTML标签实现
- [洛谷P3550][POI2013]TAK-Taxis
- 2017/09/01-2017/09/30工作日志(补)
- 【转载】通往性能优化的天堂-地狱 JOIN方法说明
- 在Delphi中使用Action降低水平功能和业务功能的耦合
- Python之数据分析(规范数据生成器Faker,学习、数据分析、开发测试专用)
- 从零开始学前端:css3新属性scss和less --- 今天你学习了吗?(CSS:Day22)
- Python+pyplot绘制带文本标注的柱状图
- 计算机课程教改论文,高职计算机教改的课程设计研究论文