1:创建测试数据
> use maxiangqian
switched to db maxiangqian
> db.oplogtest.insert({"id":"1"})
WriteResult({ "nInserted" : 1 })
> db.oplogtest.insert({"id":"2"})
WriteResult({ "nInserted" : 1 })
> db.oplogtest.insert({"id":"3"})
WriteResult({ "nInserted" : 1 })

2:做一个全备份

/home/maxiangqian/mongodb-linux-x86_64-rhel62-3.4.2/bin/mongodump --host=10.103.16.34 --port=27017 --db=maxiangqian --out=/home/mongodb/backup/bkm
3:再插入几条测试数据

rsmxqtest:PRIMARY> db.oplogtest.insert({"id":"4"})
WriteResult({ "nInserted" : 1 })
rsmxqtest:PRIMARY> db.oplogtest.insert({"id":"5"})
WriteResult({ "nInserted" : 1 })
rsmxqtest:PRIMARY> db.oplogtest.insert({"id":"6"})
WriteResult({ "nInserted" : 1 })
rsmxqtest:PRIMARY> db.oplogtest.insert({"id":"7"})
WriteResult({ "nInserted" : 1 })
rsmxqtest:PRIMARY> db.oplogtest.insert({"id":"8"})
WriteResult({ "nInserted" : 1 })

3:备份特定时间点的日志

mongodump --port 27017 -d local -c oplog.rs -q '{ts:{$lt:Timestamp(1415928580, 1),$gt: Timestamp(1415928529, 1000)}}' -o /home/mongodb/backup/opm

从某个时间点的一个oplog

mongodump --port 27017 -d local -c oplog.rs -q '{ts:{$gt: Timestamp(1489135578, 1)}}' -o /home/mongodb/backup/opm

4:将日志导出文件

/home/maxiangqian/mongodb-linux-x86_64-rhel62-3.4.2/bin/bsondump /home/mongodb/backup/opm/local/oplog.rs.bson >optest

5:查看相关maxiangqian.oplogtest相关记录:

cat optest|grep maxiangqian.op

5:查找日志点恢复到6的记录:

时间点是:
1489135569
6:先恢复整库:
/home/maxiangqian/mongodb-linux-x86_64-rhel62-3.4.2/bin/mongorestore --port=27017 /home/mongodb/backup/bkm/
7:验证数据:

oplogtest
> db.oplogtest.find()
{ "_id" : ObjectId("58c267a24bbb77d479a0cb40"), "id" : "1" }
{ "_id" : ObjectId("58c267a54bbb77d479a0cb41"), "id" : "2" }
{ "_id" : ObjectId("58c267a84bbb77d479a0cb42"), "id" : "3" }

8:恢复oplog到时间戳1489135569

/home/maxiangqian/mongodb-linux-x86_64-rhel62-3.4.2/bin/mongorestore -h 127.0.0.1 -p 27017 --oplogReplay --oplogLimit "1489139135:1" /home/mongodb/backup/opm/local/oplog.rs.bson

9:验证数据

rsmxqtest:PRIMARY> db.oplogtest.find()
{ "_id" : ObjectId("58c275344bbb77d479a0cb48"), "id" : "1" }
{ "_id" : ObjectId("58c275384bbb77d479a0cb49"), "id" : "2" }
{ "_id" : ObjectId("58c2753b4bbb77d479a0cb4a"), "id" : "3" }
{ "_id" : ObjectId("58c275b84bbb77d479a0cb4b"), "id" : "4" }
{ "_id" : ObjectId("58c275bc4bbb77d479a0cb4c"), "id" : "5" }

试试证明,恢复到了5的时候,所以要恢复到6的话,时间点应该是7开始的时间戳

mongodb时间点备份恢复的更多相关文章

  1. mongodb导入导出备份恢复

    mongodb数据库同样离不开必要的维护,如备份.恢复.导入.导出. 其实备份和恢复比导入和导出要方便些,而且一般不会出错,所以大部分时候使用备份和恢复操作就可以了 1. 备份Mongodb mong ...

  2. mongodb数据库备份恢复-windows系统

    备份语法: mongodump命令脚本语法如下: >mongodump -h dbhost -d dbname -o dbdirectory -h: MongDB所在服务器地址,例如:127.0 ...

  3. (转)Db2 备份恢复性能问题诊断与调优

    原文:https://www.ibm.com/developerworks/cn/analytics/library/ba-lo-backup-restore-performance-issue-ju ...

  4. Mongodb之备份恢复脚本

    本分脚本: !/bin/bash #备份文件执行路径 which mongodump DUMP= #临时备份目录 OUT_DIR= #本分存放目录 TAR_DIR= #获取当前系统时间==> 2 ...

  5. 010.MongoDB备份恢复

    一 MongoDB备份 1.1 备份概述 mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoi ...

  6. MongoDB for OPS 04:备份恢复

    写在前面的话 和 MySQL 一样,mongodb 也是需要将数据进行备份的,毕竟天有不测风云,谁也不知道哪天机器就炸了. 备份恢复 mongodb 提供了两种备份恢复手段:mongoexport / ...

  7. 1.MongoDB 2.7主从复制(master –> slave)环境基于时间点的恢复

    (一)MongoDB恢复概述 对于任何类型的数据库,如果要将数据库恢复到过去的任意时间点,否需要有过去某个时间点的全备+全备之后的重做日志,MongoDB也不例外.使用全备将数据库恢复到固定时刻,然后 ...

  8. 2.MongoDB 4.2副本集环境基于时间点的恢复

    (一)MongoDB恢复概述 对于任何数据库,如果要将数据库恢复到过去的任意时间点,否需要有过去某个时间点的全备+全备之后的重做日志. 接下来根据瑞丽航空的情况进行概述: 全备:每天晚上都会进行备份: ...

  9. mongodb 的备份恢复导入与导出

    导入导出 use hndb; db.s.save({name:'李四',age:18,score:80,address:'郑州'}); db.s.save({name:'李三',age:8,score ...

随机推荐

  1. proxyTable设置跨域

    如何设置跨域 1.在config--index.js 中配置 proxyTable: { '/api': { target: 'http://www.xxx.com', //目标接口域名 change ...

  2. 迁移-Mongodb时间类数据比较的坑

    背景: 拦截件监控时,对于签收的数据需要比较签收时间和实际同步数据的时间来判断  同步时间是在签收前还是签收后.在比较时,用到同步时间syncTime和signTime, signTime从Q9查单获 ...

  3. Linux下用tree命令列出树形图

    命令用法: tree 参数: -a 显示所有文件和目录. -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合. -C 在文件和目录清单加上色彩,便于区分各种类型. -d 显示目录名称而非内容 ...

  4. Word常用定义的变量

    unit U_WordConst;  interface {*******Word窗体状态************} const   wdWindowStateNormal = $00000000;  ...

  5. Case When ELSE END语句

    一.简介.Case  When   ELSE   END共有两种用法: 说实话,这种就是数据库版的switch语句,但是只是形式上很像,实际上还是有差别的!!! Create Table Test6( ...

  6. Java学习之路(二):流程控制语句

    Java流程控制语句 java的流程控制语句: 默认,顺序执行 if...else...条件控制语句 switch 选择语句 for循环 while循环 do...while循环 break,cont ...

  7. greenplum表的distributed key值查看

    greenplum属于分布式的数据库,MPP+Share nothing的体系,查询的效率很快.不过,这是建立在数据分散均匀的基础上的.如果DK值设置不合理的话,完全有可能出现所有数据落在单个节点上的 ...

  8. 【ExtJS】一些基本概念的梳理

    学习ExtJS有一段时间了,一些相关知识点虽然每天都在用,不过如果猛的一问起来还是会一愣,趁现在好好梳理下吧.长期修改添加,弄清楚什么就加入什么. 1.Ext.onReady(): onReady() ...

  9. 【ExtJS】 FormPanel与ComboBox的集成以及值的获取

    var formPanel = Ext.create("Ext.form.Panel",{ title : 'formPanel', width : 400, url : 'asd ...

  10. Oracle 行列转换总结

    行列转换包括以下六种情况:*列转行*行转列*多列转换成字符串*多行转换成字符串*字符串转换成多列*字符串转换成多行 下面分别进行举例介绍. 首先声明一点,有些例子需要如下10g及以后才有的知识:a.掌 ...