10gen发布MongoDB增量备份服务
10gen最近宣布限量发行其MongoDB备份服务,该服务提供了增量备份和指定时间点的恢复功能。
为了备份或恢复MongoDB,我们一般会使用mongodump和mongorestore工具。我们也可以选择使用--oplog获取指定时间点的快照。然而,每次备份整个数据库将消耗更多的时间和硬盘空间。10gen的新服务正是由此切入——提供支持按照指定时间点恢复的持续增量备份功能。同时,作为一个基于云的备份服务,用户可以按需支付,而不必提前规划存储容量。
它的关键特性包括:
- 用于数据传输的SSL加密
- 高可用性
- 指定时间点恢复
- 支持分片集群
- 较低的开销
预计今年晚些时候该服务将全面可用。
10gen从技术角度阐述了该解决方案的工作原理:
这是一个轻量级代理,它从所有正在备份的副本集合中收集oplog,将其压缩并加密,然后通过SSL发送到运行备份服务的数据中心。此方法拥有许多 好处,包括:1)数据是增量备份的,因此传输的数据相对较小;2)备份服务中的数据与主系统中的数据在时间上非常接近;3)对主系统的影响不会比向副本集 合中添加另一个副本大(后者非常缓慢);4)oplog支持将副本集合恢复到任意时间点。
有两个备份选项:快照和自定义快照。备份服务依据一套策略创建和维持备份快照。这些快照中的任何一个都可以用于恢复。同样的,用户也可以指定一个自 己希望使用的精确时间点创建一份快照。在这种情况下,将使用该时间点之前最新的快照,并会根据用户指定的时间点应用oplog。
与MMS类似,10gen或许会对大型企业以本地模式开放此服务。该公司已经决定,目前不会将支撑此服务的软件开源。
来自于EqualExperts的开源项目Tayra也是使用副本集合的oplog创建增量备份。我们可以查看其文档以了解它所提供的全部特性——包括选择性恢复和指定时间点恢复。不过它不支持分片系统。