传统场景下,当数据库须要进行数据恢复时,往往只能抉择周期性主动备份的全量备份,数据恢复耗时较长,可复原工夫颗粒度较大,重大影响了客户的应用体验。
华为云 DDS,一款兼容 MongoDB 的文档数据库服务,最近新增的 PITR(全称 point-in-time recovery,中文名称:工夫点复原)个性可能让这一场面失去大幅改善,实现绝大多数场景下的任意工夫点数据恢复,并让可复原工夫准确到秒级。本文次要介绍华为云 DDS 集群 PITR 个性的基本原理以及实测性能体现。
- PITR 个性原理
数字化经济时代下,数据成为企业的要害资产。如何保证数据资产的平安、稳固及可用,是企业必须思考的事件。华为云 DDS 产品在原生 MongoDB 的根底上,做了一系列个性加强,使其绝对于自建数据库领有更高可用、高牢靠、高平安、低成本等多项劣势,更加贴切企业要求,是 MongoDB 业务上云的不二抉择。上面将以华为云 DDS4.0 集群版本为例,论述其 PITR 个性的外部实现原理。
1.1. 根底介绍
集群模式下,PITR 个性的实现前提是可能保护一个间断的增量备份,而增量备份的根底,则是一个基于全局一致性的全量备份。
华为云 DDS 集群在利用实际中,通过“Hidden 节点备份”,“磁盘文件快照”,“Oplog 备份”的形式,在既有的“逻辑时钟”根底上,做到了全局统一的全量备份,为增量备份的实现打好了坚实基础。原理概要图如下:
1.2. 增量备份
MongoDB 官网,自身没有提供增量备份和 PITR 复原的计划。为了实现集群模式的增量备份,华为云 DDS 专门对原生 ChangeStream 接口进行了加强,简称 PCS 接口。
之所以选用加强 ChangeStream 接口的形式,而不是原生 ChangeStream 或者 oplog 作为增量数据,次要是为了放慢增量备份的速率,同时屏蔽集群实例外部的各种变动(如平衡 / 故障 / 主备延时等);此外还对 ChangeStream 场景进行进一步加强,以使得增量备份过程更具备可靠性(能够断点续传)和稳定性(基于备节点读数据,分担主节点压力),从而为 PITR 个性奠定根底。
增量备份示意图
如上图所示,PITR 提供的增量备份是基于全局一致性的全量备份进行的,增备频率作为可调整参数,依据不同客户的业务场景进行调整,尽可能地做到了实时备份。
增量备份外部实现是基于华为自研的 PCS 接口,即便在产生不可预测的异样时,只有实例最终状态能复原胜利,在大多数场景下,都能够实现增量备份的全工夫笼罩。
增量备份外部过程:(1) 采纳了多并发导出的机制,晋升了增量备份的性能。(2) 相比社区个性,笼罩了更多用户侧的业务操作,加强了增量备份的场景覆盖范围。
1.3. PITR 复原
PITR 复原,是借助于全量备份和增量备份进行的。华为云 DDS 在大部分场景下,都能够基于历史上的任一时间点,以秒为单位进行数据恢复。
PITR 复原过程示意图
如上图所示,PITR 优先选择最近的一次全量备份,先进行全量复原;而后顺次复原之后的各个增量备份,直到复原至用户指定的工夫点。在增量数据恢复过程中,华为云 DDS 专门增加了一层优化器,能够减速增量数据的复原,实现了文档级别的并发复原。
- PITR 性能体现
通过测试,在特定等同数据模型及业务压力场景下,华为云 DDS 基于 PITR 个性进行秒级工夫点复原时,复原性能大都优于同类产品,更加有利于达到疾速复原数据的目标。
实例规格:DDS 4.0 集群 2U4G 2mongos2shard
测试场景:4 库 X4 表,hash 分片,每表预置 100chunk,每表应用 ycsb 插入 200W 条数据
复原数据量:5X5X1000w(158G)
3. 总结
企业数字化转型热火朝天,面临的业务挑战也更加简单,一款具备优良的备份复原个性的数据库,在企业数据库选型过程中起到了很好的加分作用。华为云 DDS 集群的 PITR 个性提供了残缺且稳固的备份复原性能,既能保证数据自身的平安,也便于客户集中精力在本身的业务实现上,助力业务倒退更上一层楼。