备份原理及方案
DDS实例支持自动备份和手动备份,您可以定期对数据库进行备份,当数据库故障或数据损坏时,可以通过备份文件恢复数据库,从而保证数据可靠性。
备份原理
- 集群实例
集群实例由dds mongos(路由)、Config(配置)和Shard(分片)组件构成。其中,Config主要用于存储集群实例的配置信息,Shard节点主要用于存储集群实例的数据信息。所以集群实例在备份时,需要分别备份Config节点和Shard节点上的数据,且Config节点和Shard节点是分开进行备份的。如图1所示,集群实例的备份是由Config节点和Shard节点分别在各自的Hidden节点上进行,备份过程会占用Hidden节点一定的CPU内存资源。因此,在备份期间,实例的Hidden节点的CPU使用率、内存使用率、主备延时指标会有一点升高,属于正常现象。但最终的备份文件将以压缩包的形式存储在对象存储服务(OBS)中,不会占用实例的磁盘空间。
- 副本集实例
如图2所示,副本集实例的备份在Hidden节点上进行。备份过程会占用Hidden节点一定的CPU内存资源。因此,在备份期间,实例的Hidden节点的CPU使用率、内存使用率、主备延时指标会有一点升高,属于正常现象。但最终的备份文件将以压缩包的形式存储在对象存储服务(OBS)中,不会占用实例的磁盘空间。
- 单节点实例
单节点的备份是在仅有的一个节点上进行的,最终的备份文件将以压缩包的形式存储在对象存储服务(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进行手动备份。
- 集群
- 副本集
- 单节点
您可以通过MongoDB客户端自带的备份恢复工具对自建MongoDB或云上MongoDB数据库进行手动备份。
- 集群
- 副本集
- 单节点
您可以通过MongoDB客户端自带的备份恢复工具对自建MongoDB或云上MongoDB数据库进行手动备份。
下载备份文件
- 集群
- 副本集
- 单节点
备份文件大于400MB时,适合使用OBS Browser+下载。
- 副本集
- 单节点
适合通过浏览器直接下载备份文件。
- 集群
- 副本集
- 单节点
适用于通过浏览器新窗口、迅雷或者wget等方式下载备份文件。
- DDS详细的恢复方案请参见恢复方案。
备份费用
备份都是以压缩包的形式存储在对象存储服务上。备份文件上传OBS会占用备份空间,当已使用备份空间超过赠送空间后,超过的部分就会按使用量收取费用。具体收费规则请参见DDS的备份是如何收费的。