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. node 基础小结

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. python入门练习之如何连接数据库

    !/usr/bin/python -- coding: UTF-8 -- author = 'luke' from sqlalchemy import create_engine from sqlal ...

  3. quickly calc pow(i, n) since i in [1~n]

    #include <bits/stdc++.h> using namespace std; #define inf (0x3f3f3f3f) typedef long long int L ...

  4. Unity 动画 命名

    unity标准的动画命名格式是 ?模型名@动画名 如boss1@idle ,这样导入进来之后unity会自动给这个动画命名为idle而不是Take 001.

  5. [转]常用 GDB 命令中文速览

    目录 break -- 在指定的行或函数处设置断点,缩写为 b info breakpoints -- 打印未删除的所有断点,观察点和捕获点的列表,缩写为 i b disable -- 禁用断点,缩写 ...

  6. ArrayList、Vector和LinkedList等的差别与用法(基础回顾)

    ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都容许直接序号索引元素,然则插入数据要设计到数组元素移动等内存操纵,所以索引数据快插入数 ...

  7. Android Gson解析复杂Json

    JSON原数据 {"total":1,"rows":[{"ID":1,"Title":"台州初级中学招收初一年 ...

  8. Visual Studio中修改项目的输出目录

    1. 如在Solution中的项目名称为 ProjectA 但在本地目录显示却想换成: MyProject 2. 应该做的修改是: 2.1. 将本地目录的 ProjectA手动修改成 MyProjec ...

  9. table中列复选框全选,再选 效果

    <table class="table table-striped sortable table-bordered table-hover " id="zdnews ...

  10. java实现Redis分布式锁

    网上到处都是分布式锁的代码,基本都是通过setNX 和 expire 这两个不是原子操作,肯定会有问题,不乏好多人通过用setNX的value当做过期时间来弥补等等.但是好像都不太好,或者多少有点问题 ...