
# DCS备份恢复概述
业务系统日常运行中可能出现一些小概率的异常事件，比如异常导致缓存实例出现大量脏数据，或者在实例出现故障后持久化文件不能重新加载。部分可靠性要求非常高的业务系统，除了要求缓存实例高可用，还要求缓存数据安全、可恢复，甚至永久保存。
DCS支持将当前时间点的实例缓存数据备份并存储到对象存储服务（OBS）中，以便在缓存实例发生异常后能够使用备份数据进行恢复，保障业务正常运行。用户可免费使用基础备份功能，无需额外支付备份操作费用。本文档将介绍如何通过管理控制台对DCS缓存实例进行数据备份，以及如何将备份数据恢复到实例中。
#### 操作视频
本视频演示如何备份Redis缓存实例数据。因产品功能演进，操作界面可能存在差异，相关视频仅供参考，具体以实际环境为准。
<video controls="controls" preload="none" id="object7708111219303" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/support/dcs-video/1724898046695790595.mp4" title="购买缓存实例" poster="https://support.huaweicloud.com/usermanual-dcs/zh-cn_image_0000002394279981.jpg" height="335.0000" width="600.0000"></video>
#### 备份方式
DCS缓存实例支持自动和手动两种备份方式。
- 自动备份 您可以通过管理控制台设置一个定时自动备份策略，在指定时间点将实例的缓存数据自动备份存储。
  自动备份频率以天为单位，您根据需要，选择每周备份一次或多次。备份数据保留最多7天，过期后系统自动删除。
  自动备份主要目的在于让实例始终拥有一个完整的数据副本，在必要时可以及时恢复实例数据，保证业务稳定，实例数据安全多一重保障。
  
- 手动备份 除了定时备份，DCS还支持由用户手动发起备份请求，将实例当前缓存数据进行备份，并存储到OBS服务中。
  您在执行业务系统维护、升级等高危操作前，可以先行备份实例缓存数据。
  
 
#### 备份过程对实例的影响
- **备份操作是在备节点执行，备份期间不影响实例正常对外提供服务。**
- 在主备节点全量数据同步或者实例高负载的场景下，数据同步需要一定的时间，在数据同步没有完成的情况下开始备份，备份数据与主节点最新数据相比，有一定延迟。
- 在实例备节点进行备份期间，如果主节点有新的数据写入，备份文件不会包含备份期间的数据变化。
 
#### 备份的其他说明
- 支持备份的实例类型
  - **Redis的"主备"、"Proxy集群"、"Cluster集群"和"读写分离"实例支持数据备份与恢复功能，"单机"实例暂不支持。** 单机实例若需要备份，可参考[Redis单机实例使用Redis-cli工具备份](https://support.huaweicloud.com/dcs_faq/dcs-faq-0427075.html)，使用redis-cli工具导出RDB文件。
  
  - Memcached的"主备"实例支持数据备份与恢复功能，"单机"实例暂不支持。
   
- 备份原理 Redis 3.0实例（已停售）采用的是AOF文件进行持久化。手动备份支持选择RDB格式和AOF格式进行持久化，自动备份仅支持RDB格式进行持久化。企业版存储型仅支持RDB格式进行持久化。
  - 如果需要导出Redis 3.0的RDB备份文件，可以通过redis-cli导出，使用命令：**redis-cli -h *{redis_address}* -p 6379 -a*{* *password* *}* --rdb *{output.rdb}***。
  
  - 放通了SYNC命令的Redis 3.0单机实例可以通过执行此命令将RDB文件导出；Redis 3.0 Proxy集群实例由于架构的原因，不支持放通SYNC命令，因此不能导出RDB文件。
  
  
  备份任务在备节点执行，DCS通过将备节点的数据持久化文件压缩并转移到OBS服务中存储，从而实现实例数据备份。DCS以小时为单位，定期检查所有实例的备份策略，对于需要执行备份的实例，启动备份任务。
  数据备份只针对用户的key-value型数据，不包含实例配置等其他数据。
  
- 备份时间点的选择 建议选择业务量少的时间段进行备份。
  
- 备份文件的存储 备份文件存储在对象存储服务（OBS）中。
  
- 自动备份异常的处理 自动备份任务触发后，如果实例当前正在进行重启、扩容等操作，则定时任务顺延到下一时间段处理。
  实例备份失败或者因为其他任务正在进行而推迟备份，DCS会在下一时间段继续尝试备份，一天最多会尝试三次。
  
- 备份数据保存期限 自动备份产生的备份文件根据您设置的策略保留1-7天，超期由系统自动删除，但至少会保留最近一次的数据备份记录。
  - DCS实例的自动和手动备份记录总数默认不超过24个，如有需要可以联系客服申请临时调整限制数量。
  
  - 当备份记录超过最大限制时，手动备份不支持创建新的备份记录，继续备份需要手动删除旧的备份记录；自动备份会自动删除最早的自动备份记录，创建新的自动备份记录。
  
  - 当删除实例时，备份数据会随实例删除，如果需要保存备份数据，请提前将备份数据下载保存。
  
  - **删除所有备份文件，会影响备份文件相关能力，如故障时执行备份恢复，请谨慎操作。**
   
 
#### 数据恢复
- 数据恢复流程
  1. 您通过控制台发起数据恢复请求。
  
  2. DCS从对象存储服务（OBS）获取数据备份文件。
  
  3. 暂停实例数据读写服务。
  
  4. 替换主实例的持久化文件。
  
  5. 重新加载新的持久化文件。
  
  6. 完成数据恢复，对外提供数据读写服务。
   
- 数据恢复对业务系统的影响 恢复操作是将备份文件在主节点执行，实例数据恢复期间需暂停数据读写服务，直到主实例完成数据恢复。
  
- 数据恢复异常处理 数据恢复文件如果被损坏，DCS在恢复过程中会尝试修复。修复成功则继续进行数据恢复，修复失败，DCS主备实例会将实例还原到执行恢复前的状态。
  
 
