mongodb删库后恢复
mongodb删库后恢复
模拟删库恢复
1.重置mongo数据库副本集,准备干净环境
rm -rf /data/mongo_28017/*
rm -rf /data/mongo_28018/*
rm -rf /data/mongo_28019/*
#ps: 不要一起复制,这里停两秒不然可能会报错
mongod -f /opt/mongo_28017/conf/mongodb.conf
mongod -f /opt/mongo_28018/conf/mongodb.conf
mongod -f /opt/mongo_28019/conf/mongodb.conf
1.1 新建副本集
mongo --port 28017
rs.initiate() #初始化副本集,28017操作
rs.add("10.0.0.51:28018") #将28018节点加入副本集
rs.add("10.0.0.51:28019") #将28019节点加入副本集
# rs.addArb("10.0.0.51:28020") #将28020仲裁节点加入副本集,#ps:如果要加仲裁节点放到28019设备上就在28019服务器上操作加入仲裁节点。
rs.status() #查看副本集基本信息
2.第一天写入数据
use backup
db.backup.insertOne({"id":1})
db.backup.insertOne({"id":2})
db.backup.insertOne({"id":3})
3.第一天全备数据
rm -rf mongo_backup/
mongodump --host="dba/10.0.0.51:28017,10.0.0.51:28018,10.0.0.51:28019" -o mongo_backup
mongodump --host="dba/10.0.0.51:28017,10.0.0.51:28018,10.0.0.51:28019" -d local -o mongo_backup
4.第二天写入增量数据
mongo --port 28017
use backup
db.backup.insertOne({"id":4})
db.backup.insertOne({"id":5})
db.backup.insertOne({"id":6})
5.第二天删库
use backup
db.dropDatabase()
6.查找误删库的时间点,找到上一次全备之后的时间点和误删除的时间点
#删库语句的上一个oplog时间戳为终点。
use local
db.oplog.rs.find({"ns" : "backup.$cmd"}).pretty()
{"ts" : Timestamp(1600946847, 1),"t" : NumberLong(1),"h" : NumberLong("-2568166064082827279"),"v" : 2,"op" : "c","ns" : "backup.$cmd","ui" : UUID("f6e1ae5a-9c71-4aa2-968f-630a72fdfd12"),"wall" : ISODate("2020-09-24T11:27:27.166Z"),"o" : {"drop" : "backup"}
}
终点: 1600946847
7.切割oplog,找出上次全备到现在为止的数据
#可先进到全备目录local里将oplog.rs.bson转成json格式,取最后一行得到起点时间戳
cd mongo_backup/local
bsondump --bsonFile=oplog.rs.bson --outFile=oplog.json
tail -1 oplog.json
{"ts":{"$timestamp":{"t":1600950471,"i":1}},"t":{"$numberLong":"1"},"h":{"$numberLong":"-8346344552776369296"},"v":2,"op":"n","ns":"","wall":{"$date":"2020-09-24T12:27:51.956Z"},"o":{"msg":"periodic noop"}}
起点:1600950471
8.恢复oplog起点之后的数据,导出增量数据
mongodump \
--host="dba/10.0.0.51:28017,10.0.0.51:28018,10.0.0.51:28019" \
-d local \
-c oplog.rs \
-q '{ts:{$gt:Timestamp(1600950471,1)}}' \
-o mongo_backup_oplog
#这里填的是起点时间戳
9.移动到全备目录里 #将增量数据移到全量目录
ps:全量目录mongo_backup里面放的是原来全量的数据,现在把增量放进去数据就完整了
cd mongo_backup
cp /root/mongo_backup_oplog/local/oplog.rs.bson /root/mongo_backup/oplog.bson
rm -rf local #可删可不删,建议移走
10.在测试数据库恢复数据
mongorestore \
--host="dba/10.0.0.51:28017,10.0.0.51:28018,10.0.0.51:28019" \
--oplogReplay \
--oplogLimit=1600946847 \
./mongo_backup --drop
#这里放的是终点时间戳,意思是恢复这个时间戳之前的数据
11.把恢复后的数据导出成json格式
bsondump --bsonFile=oplog.bson --outFile=oplog.json
12.没问题后在将恢复的json文件导入到生产数据库
13.再保险做一次全备
mongodb删库后恢复相关推荐
- [MySQL]-删库后恢复
[MySQL]-删库后恢复 sen格 | 2022年11月 本文旨在记录个人在数据库的删库恢复演练过程中的一些总结,如有不足,欢迎指正. 一.恢复场景 1)假设生产实例MySQL端口为:3306 2) ...
- mysql删库后恢复数据流程
目录 前言 binlog 准备 备份 总结 前言 本文将介绍当我们使用mysql不小心删库之后,或者恶意被删库后,如何进行数据恢复 binlog 我们进行数据恢复的前提是: 1.必须开启binlog日 ...
- mysql删库后恢复_记一次MySQL删库的数据恢复
昨天因为不可描述的原因,数据库直接被 drop database删除.在第一时间停止数据库服务和Web服务,备份MySQL数据目录下的所有文件之后,开始走上数据恢复之路. 第一次干这种事,各种不得法. ...
- mysql被删库如何恢复_mysql整个数据库被删除了怎么恢复
展开全部 每个 DBA 是不是都有过删库的经e68a84e8a2ad62616964757a686964616f31333433626437历?删库了没有备份怎么办?备份恢复后无法启动服务什么情况?表 ...
- 删库后,除了跑路还能怎么办?
阅读本文大概需要 1.4 分钟. 当年悟空学艺于菩提祖师门下,老师遣他下山,悟空觉得自己蒙受师傅传授大恩,还没有报答.菩提祖师就说:不要提什么报答之恩,只要你日后闯出祸来不把为师说出来就行了. 我听说 ...
- MongoDB 4.2 Linux勒索病毒删库清空恢复技术方案教程,没有collection*.wt、WiredTIger.wt,附件:MongoDB专用数据恢复工具!!!(2021.4.15)
故障简述 平台:华为云ECS云服务器 操作系统:CentOS 数据库:MongoDB 4.2 数据量:数千个集合,共3TB压缩数据(实际数据约8TB) 2021年4月11日, MongoDB遭到黑客勒 ...
- mysql数据库recover_xxx数据库恢复 mariadb数据库误删除恢复 mysql数据库被黑删库恢复
6月 mysql数据库被删库的太多了, 如果你也遇到了这个问题,那就保护好原始环境 不要尝试恢复了,赶紧联系专业人士处理. 这种删库后,实际的数据库表数据文件 还存在磁盘 只是文件簇链接被破坏,所以看 ...
- 【记录】删库如何进行恢复?
一.前言 新年伊始,万象更新,先说点什么吧,当今日新月异的巨量信息不断冲击着人们的视觉,本人虽然不是一枚川粉吧,但也很热衷去吃瓜大统领的各种骚操作,四年来给我们普通人带来了不知道多少欢乐啊,还有各种让 ...
- 我删删删删库了,要跑路吗?
每日英语,每天进步一点点(偷笑): 前言 写个简单的 Bash 脚本都不上心了,写完连检查都不检查,直接拖到到实体服务器跑. 结果一跑起来,发生不对劲,怎么一个简单脚本跑了 10 秒还没结束,于是立 ...
最新文章
- 【组队学习】【32期】统计学习方法习题实战
- 为什么数学家、统计学家和机器学习专家会用不同方式解决问题?
- filewriter判断是否关闭_警示丨小伙用打火机检测煤气罐是否泄漏,瞬间被火焰吞噬!...
- mysql中的乐观锁_MySQL中悲观锁和乐观锁到底是什么?
- 云漫圈 | 什么是字符串匹配算法?
- 重复addEventListener(事件名,的问题
- 电脑双系统--我想体验不一样的感觉
- 20200408_W_水波理论和波浪载荷
- 技巧:删除桌面上提示找不到该项目的文件
- 为IDEA配置maven镜像
- 谷歌浏览器打开普通用户_谷歌浏览器为啥打开之后会是其他的浏览器的解决步骤...
- 关于 Android 的 OMA DRM 验证
- 基本知识 100052
- 基于Docker的Redis集群搭建
- 智能配时、图片识别…AI为你的春运保驾护航!
- SpyNote的APK无法运行的问题
- python在地图上画路线_使用Python和Perl绘制北京跑步地图
- 计算机网络-15 网络测量
- SIEMENS/西门子1200 总线控制V90伺服程序模板
- 宫崎步 brave heart 歌词加谐音