更新时间:2024-06-28 GMT+08:00

备份原理及方案

DDS实例支持自动备份和手动备份,您可以定期对数据库进行备份,当数据库故障或数据损坏时,可以通过备份文件恢复数据库,从而保证数据可靠性。

备份原理

  • 集群实例

    集群实例由dds mongos(路由)、Config(配置)和Shard(分片)组件构成。其中,Config主要用于存储集群实例的配置信息,Shard节点主要用于存储集群实例的数据信息。所以集群实例在备份时,需要分别备份Config节点和Shard节点上的数据,且Config节点和Shard节点是分开进行备份的。如图1所示,集群实例的备份是由Config节点和Shard节点分别在各自的Hidden节点上进行,备份过程会占用Hidden节点一定的CPU内存资源。因此,在备份期间,实例的Hidden节点的CPU使用率、内存使用率、主备延时指标会有一点升高,属于正常现象。但最终的备份文件将以压缩包的形式存储在对象存储服务(OBS)中,不会占用实例的磁盘空间。

    图1 集群备份原理图
  • 副本集实例

    图2所示,副本集实例的备份在Hidden节点上进行。备份过程会占用Hidden节点一定的CPU内存资源。因此,在备份期间,实例的Hidden节点的CPU使用率、内存使用率、主备延时指标会有一点升高,属于正常现象。但最终的备份文件将以压缩包的形式存储在对象存储服务(OBS)中,不会占用实例的磁盘空间。

    图2 副本集备份原理图
  • 单节点实例

    单节点的备份是在仅有的一个节点上进行的,最终的备份文件将以压缩包的形式存储在对象存储服务(OBS)中,不会占用实例的磁盘空间。

    单节点的备份基于mongodump实现,备份过程中会额外占用节点的CPU、内存等资源,资源不足时会出现备份失败的情况。建议迁移到副本集实例进行备份。

    图3 单节点备份原理图

备份与恢复方案

  • 表1提供了常见的数据备份和下载备份文件的方法。

    支持版本号没有说明的,默认支持全部版本:3.2、3.4、4.0、4.2和4.4版本。

    表1 备份方案

    任务类型

    备份或恢复类型

    支持的实例类型和版本

    使用场景

    数据备份

    自动备份

    • 集群
    • 副本集
    • 单节点

    您可以通过控制台对DDS进行自动备份。

    增量备份

    • 集群(4.0、4.2版本支持)
    • 副本集(4.0、4.2版本支持)

    您可以通过控制台对DDS进行增量备份。

    跨区域备份

    • 集群
    • 副本集
    • 单节点

    您可以通过控制台对DDS进行跨区域备份。

    手动备份

    • 集群
    • 副本集
    • 单节点

    您可以通过控制台对DDS进行手动备份。

    通过mongodump工具备份

    • 集群
    • 副本集
    • 单节点

    您可以通过MongoDB客户端自带的备份恢复工具对自建MongoDB或云上MongoDB数据库进行手动备份。

    通过mongoexport工具备份

    • 集群
    • 副本集
    • 单节点

    您可以通过MongoDB客户端自带的备份恢复工具对自建MongoDB或云上MongoDB数据库进行手动备份。

    下载备份文件

    使用OBS Browser+下载

    • 集群
    • 副本集
    • 单节点

    备份文件大于400MB时,适合使用OBS Browser+下载。

    使用浏览器直接下载

    • 副本集
    • 单节点

    适合通过浏览器直接下载备份文件。

    按地址下载

    • 集群
    • 副本集
    • 单节点

    适用于通过浏览器新窗口、迅雷或者wget等方式下载备份文件。

  • DDS详细的恢复方案请参见恢复方案

备份费用

备份都是以压缩包的形式存储在对象存储服务上。备份文件上传OBS会占用备份空间,当已使用备份空间超过赠送空间后,超过的部分就会按使用量收取费用。具体收费规则请参见DDS的备份是如何收费的