文档首页/ 文档数据库服务 DDS/ 用户指南/ 数据恢复/ DDS新增量备份与恢复方案
更新时间:2026-04-10 GMT+08:00
分享

DDS新增量备份与恢复方案

操作场景

随着业务规模的持续增长,数据库备份不仅需要满足“可用性”,还需具备更高的可靠性、更少的使用限制以及更快的备份恢复效率。针对DDS实例,华为云现已推出新的增量备份与恢复方案,进一步优化了分片集群场景下的备份能力,为客户提供更加高效、稳定的数据保护体验。与旧方案相比,新方案在分片集群场景下具有更少的限制、更快的增量备份速度和更完整的恢复链路,尤其是在shard数量较多时,其性能优势更为显著。

概述

DDS 备份由全量备份和增量备份构成:

● 全量备份:保存某一时间点的完整数据。

● 增量备份:记录自全量备份后发生的数据变更。

● 恢复:通过结合全量备份和增量备份,将实例恢复至目标时间点。

旧方案:

● 副本集实例基于oplog进行增量备份。

● 分片集群实例基于Change Stream进行增量备份。

新方案:

● 副本集仍基于oplog进行增量备份;

● 分片集群改为基于每个shard的hidden节点和config server的hidden节点分别备份各自的oplog。

新方案的核心变化主要体现在分片集群增量备份架构的升级。

新旧方案区别

在旧方案中,分片集群的增量备份依赖于Change Stream来获取变更数据。而在新方案中,分片集群的增量备份不再依赖Change Stream,而是由各shard的hidden节点以及config server的hidden节点分别备份各自的oplog。

可以简单理解为:

● 旧方案:通过Change Stream统一获取集群变更。

● 新方案:各组件基于自身的oplog分别采集增量数据。

对应关系如下:

表1 新旧方案对比

实例类型

旧方案

新方案

副本集

基于 oplog 增量备份。

基于 oplog 增量备份。

分片集群

基于 Change Stream 增量备份。

基于各 shard hidden 节点和 config server hidden 节点分别备份 oplog。

这种变化使得分片集群的增量备份方式更加贴近底层日志结构,整体备份链路也更加清晰。

新方案优势

新方案上线后,分片集群场景主要获得以下收益:

  1. 受限场景更少。

    在旧方案中,分片集群的增量备份依赖于Change Stream,在某些场景下会受到相关能力的限制。新方案则直接基于各shard和config server的oplog进行增量备份,适用范围更广,受限场景更少。

  2. 增量备份速度明显提升。

    在新方案中,各shard可以并行备份各自的oplog,与旧方案相比,增量备份的效率显著提升。对于分片集群而言,shard数量越多,并行度越高,增备速度的提升也越明显。因此,在拥有较多shard的集群中,新方案的优势更为突出。

  3. 恢复链路更完整。

    新方案不仅涵盖了各shard的数据变更,还涵盖了config server的元数据变更。在恢复时,系统基于全量备份和增量备份进行统一编排,能够更完整地恢复集群状态。

恢复说明

在恢复场景下,系统会基于备份链完成数据恢复,主要过程包括:

  1. 先恢复全量备份。
  2. 再按顺序回放增量日志。
  3. 协同恢复各shard和config server的相关变更。

因此,新方案不仅提升了增量备份效率,也为分片集群提供了更完整的恢复基础。

从旧增备切换到新增备的操作说明

已使用旧增备方案的实例,可通过以下步骤切换到新增备方案。

  1. 该功能当前处于公测阶段,如需使用,请提交工单为目标DDS实例所在账户申请开通新增量备份。
  2. 新增量备份开通后,将实例升级到支持新增备方案的最新补丁版本。具体升级操作,请参见“补丁升级”内容。
  3. 重新开启增量备份。

    在备份策略中:

    • 先关闭增量备份。
    • 再重新开启增量备份。

    完成后,实例将从旧的增量备份方案切换到新的增量备份方案。

切换注意事项

在切换过程中,请重点关注以下事项:

1. 关闭增量备份将删除历史增量备份文件。

2. 切换后,系统将基于新方案重新建立增量备份链。

3. 建议在近期无恢复需求时进行切换操作。

4. 如果客户短期内可能依赖现有的历史增量备份进行恢复,建议暂时不要切换,等到合适的时间窗口再执行。

日常使用备份与恢复的注意事项

在日常使用备份与恢复功能时,建议关注以下几点,以提高恢复效率并降低恢复失败的风险。

  1. 关键删除类操作前,建议先执行一次手动全量备份。

    在执行以下关键删除类操作前,建议先进行一次手动全量备份:

    • dropCollection
    • dropDatabase
    • shardCollection

    这类操作通常会对数据或数据分布产生较大影响。在操作前保留一份新的全量备份,可以在后续发生误操作或需要恢复时,显著缩短恢复时间。

  2. PITR 恢复到新实例时,目标实例规格不宜明显低于源实例。

    如果源实例规格较大,而在执行 PITR(按时间点恢复) 到新实例时选择了明显更小规格的目标实例,可能带来以下问题:

    • 恢复耗时明显增加。
    • 恢复过程中资源压力较大。

    在极端情况下,可能会因为内存不足导致OOM(Out of Memory),从而造成恢复失败。因此,建议在进行PITR恢复到新实例时,目标实例的规格不应明显低于源实例,特别是在数据量较大、增量日志较多的场景下,更应合理评估目标实例的CPU和内存资源。

  3. 新增备方案下,PITR 恢复性能与目标实例 CPU 规格相关。

    在新的增量备份方案中,恢复阶段通过多线程回放oplog的方式执行增量数据恢复。因此,在PITR恢复到新实例时,目标实例的CPU核数越多,增量日志回放速度通常越快。对于恢复效率要求较高的场景,建议优先选择CPU规格更高的目标实例,以尽快完成PITR恢复并定位关键数据。待恢复完成并确认所需数据后,再根据实际需要将实例变更为较小规格,以兼顾恢复效率和资源成本。

相关文档