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. linux切换php版本

    1.查看php版本 find / -name .php 2.vim /etc/profile 3.加上export PATH=/usr/local/php5.6/bin:$PATH 4.source ...

  2. mouseover和mouseenter闪烁的问题

    span标签绑定mouseover/mouseout事件,显示/隐藏一个信息框div 该div下没有任何子元素 悬停上去一直闪烁,改成mouseenter也没用. 照成的原因是:悬停上去信息框div盖 ...

  3. init_config_file.lua

    --[[ 读取限流配置 --]] --获取共享内存 local limit_req_store = ngx.shared.limit_req_store --初始化拒绝 URI 列表 reject_u ...

  4. Win7/Vista/Server2008下VS 环境 调试调用 HTTP.SYS 无法启动监听服务及启动后其他机器无法访问端口

    一. VS调试在Win7(vista系列)操作系统下 HttpListener无法绑定多个 指定IP.端口问题 来自:http://www.cnblogs.com/ryhan/p/4195693.ht ...

  5. 阿里云Centos7上安装MySQL教程

    1 基本安装过程 1.查看系统是否安装了mysql软件 # rpm -qa|grep -i mysql 2.将已经安装过的软件卸载掉.注意:这样的卸载是不彻底,不过这里够用了 # yum remove ...

  6. orcale 之 数据完整性约束

    数据完整性约束是对数据描述的某种约束的条件,在关系型数据库中一般有:完整性约束,实体完整性约束,参照完整性约束和用户自定义完整性约束. 实体完整性约束 在数据库中一张表一般对应一个现实生活中的实体,比 ...

  7. log4j DailyRollingFileAppender, DatePattern 配置

    在DailyRollingFileAppender中可以指定monthly(每月). weekly(每周).daily(每天).half-daily(每半天).hourly(每小时)和minutely ...

  8. 关于React Hooks,你不得不知的事

    React Hooks是React 16.8发布以来最吸引人的特性之一.在开始介绍React Hooks之前,让咱们先来理解一下什么是hooks.wikipedia是这样给hook下定义的: In c ...

  9. java并发编程(1)并发程序的取消于关闭

    一.任务的取消于关闭 1.中断Thread 1.每个线程都有一个boolean类型的中断状态.true则是中断状态中 interrupt:发出中断请求:isInterrupt:返回中断状态:inter ...

  10. 如何高效的算出2x8的值

    原文出自:https://blog.csdn.net/seesun2012 位移算法,如何高效的算出2*8的值,为什么8<<1,4<<2,2<<3,1<< ...