博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDb 备份实践一下
阅读量:7062 次
发布时间:2019-06-28

本文共 931 字,大约阅读时间需要 3 分钟。

hot3.png

一、开启oplog

需要 mongod --master (3.2以后主从不推荐了)

或者 mongod --replSet rs0  (开启复制集)

才会有 oplog产生,上面2个也可以通过配置文件达到目的

oplog 是全局的,记录的所有所有db的操作

二、备份实践

开启2个客户端。

一个执行循环插入:

        for(var i = 0; i <100000; i ++){ db.sessions.insert({a:i}); }

135729_Ywyq_1165943.png

另一个执行dump操作:

       sudo mongodump  --db test  --out /usr/local/mongobak

140205_VoA4_1165943.png

140333_ga4L_1165943.png

开启 --oplog 不能指定特定数据库,而是所有库都备份。可以看到有本分的数据库test 和 oplog.bson 文件。

 

141230_K8Il_1165943.png

bsondump  sessions.bson 查看,我们的a是循环自增的,所有根据最后一条,可以看出备份文件中备份了 75577+1条数据。(插入循环是从0开始,所以是 75578条)

 bsondump oplog.bson  查看 oplog中的内容是从 75502 到 76623 共1121条记录。

141425_8fll_1165943.png

 

三、还原实践

先把sessions 表里面的数据清除。

执行 mongorestore mongobak/  可以看出恢复了 75578条数据。

142129_gAFW_1165943.png

再把sessions 表里面的数据清除, 重新恢复 一次这一次加上 --oplogReplay  参数。

142735_YwOd_1165943.png

142755_RvNT_1165943.png

恢复了 76624条记录。 为备份执行结束时 数据库的所有记录。 另外2万多条记录是 dump程序结束后 插入的。 所以在 dump 文件中没有的。

 

四、指定oplog时间恢复

143938_GaIB_1165943.png

再把sessions 表里面的数据清除, 重新恢复 一次这一次加上 --oplogLimit 参数,时间选择上面标红的时间。

理论上会恢复到 {“a“:76621} 这条记录为止。后面的2条不会恢复。

144137_AESH_1165943.png

144152_4Q2a_1165943.png

如图,完全符合预期。

参考:http://www.cnblogs.com/yaoxing/p/mongodb-backup-rules.html

 

 

 

转载于:https://my.oschina.net/chen1988/blog/1499463

你可能感兴趣的文章
AGG第三十五课 gsv_text 渲染ASCII字符
查看>>
查找组成一个偶数最接近的两个素数
查看>>
不怕狼一样的敌人,就怕狗一样的朋友
查看>>
bash基础特性
查看>>
【连载】物联网全栈教程-从云端到设备(十二)---最简单的单片机上云方法!...
查看>>
如何自学编程?学习方法在这里!
查看>>
springboot web应用 jar 启动 ant脚本
查看>>
SolrCould 集群搭建
查看>>
IDEA Git版本回滚提交方式
查看>>
tomcat中同时启动两个项目出现内存不足的错误提示解决办法
查看>>
ssm框架开发过程中遇到的一错误以及解决问题提示
查看>>
树的遍历
查看>>
Akka2使用探索6(Futures)——实现并发和异步
查看>>
【持续更新】jQuery 实用技巧
查看>>
大象也能起舞,Citrix X1计划让你对笔记本电脑say good bye
查看>>
Nginx 之常见报错问题解决
查看>>
linux 防爆破方法
查看>>
2、通过ipmitool工具修改IPMI的WEB密码
查看>>
云盘关闭,教你用蒲公英搭建私有云
查看>>
Spring Cloud 入门教程5、服务容错监控:Hystrix Dashboard
查看>>