MongoDB point-in-time recovery工具

eshujiushiwo 2015-01-08 11:39:10
各位好,
我是E叔,这里是E叔的《Mongodb 分享第七期》

本期分享的是E叔为了方便自己写的一个MongoDB point-in-time recovery工具。
E叔自己测试下来是没啥问题(写的目的一开始就是为了自己方便)。如果大家要用建议也测测哦。

点这里,GitHub地址

mongo-mopre 工具使用介绍
功能

MongoDB point-in-time 恢复工具

参数

--fromhost 源地址
--tohost 目标地址
--fromport 源端口(default 27017)
--toport 目标端口(default 27017)
--userName 用户名(如果有)
--passWord 密码(如果有)
--database 数据库名
--collection 表名
--startts 开始时间戳(unixtimestamp 详细解释见下文)
--stopts 结束时间戳(unixtimestamp 详细解释见下文)
--startcount 从开始时间戳的第几个操作开始(default 0 详细解释见下文)
--stopcount 在结束时间戳的第几个操作结束(default 0 详细解释见下文)
--logpath 输出日志路径
--sliece 是否输出到窗口
startcount&stopcount详解

在MongoDB的oplog.rs中,ts是如下按如下方式存储的 :
"ts" : Timestamp(1419992913, 4)
在不输入startcount 和stopcount的时候,我们的查询范围是(前后均包含):
Timestamp(startts, 0) ------> Timestamp(stopts, 0)
在指定了startcount和stopcount的时候,我们的查询范围是(前后均包含):
Timestamp(startts, startcount) ------> Timestamp(stopts, stopcount)

测试实例

背景:拥有10点的快照(X),需要恢复数据库 (DB) 到12点某个误操作之前
假设:开始时间戳,startts为a,startcount为0,误操作之前最后的时间戳,stopts为b,stopcount为n
主机A(原复制集中一个从节点,出问题后从以非复制集方式启动,保护现场)
主机B(零时用于数据恢复的机器)先使用快照X恢复到10点的状态

./mopre --fromhost A --tohost B --fromport 27017 --toport 27017 --startts a --startcount 0 --stopts b --stopcount n --database DB --logpath /tmp/test.log --slience yes
问题

1.性能并未测试
2.代码结构较乱
...全文
4515 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
文修 2015-12-30
  • 打赏
  • 举报
回复
跪求楼主结贴给分
文修 2015-12-22
  • 打赏
  • 举报
回复
多谢楼主分享
eshujiushiwo 2015-06-15
  • 打赏
  • 举报
回复
引用 3 楼 lanbaibai 的回复:
是否可以结合mongodump全量备份,用mongo-mopre 工具作增量备份? mongodump做备份的时候,数据可以写入,这时候增量备份怎么做?
理论来说是可以的。 mongodump的时候可以指定参数,这样dump过程中的变动oplog会自动在dump的数据中,恢复的时候也指定参数就可以一并应用,并恢复到dump结束的时间点。 或者可以锁库后进行dump,那么这时候就是一致性的,也可以关闭实例从数据文件中dump
lanbaibai 2015-06-12
  • 打赏
  • 举报
回复
是否可以结合mongodump全量备份,用mongo-mopre 工具作增量备份? mongodump做备份的时候,数据可以写入,这时候增量备份怎么做?
venchia_lu 2015-04-08
  • 打赏
  • 举报
回复
没用过,也不打算用,但看着好像很厉害的样子。
rucypli 2015-01-09
  • 打赏
  • 举报
回复

1,746

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧