更新时间:2024-07-29 GMT+08:00

备份与恢复说明

介绍如何通过管理控制台对DCS缓存实例进行数据备份,以及备份数据恢复

备份缓存数据的必要性

业务系统日常运行中可能出现一些小概率的异常事件,比如异常导致缓存实例出现大量脏数据,或者在实例出现故障后持久化文件不能重新加载。部分可靠性要求非常高的业务系统,除了要求缓存实例高可用,还要求缓存数据安全、可恢复,甚至永久保存。

DCS支持将当前时间点的实例缓存数据备份并存储到对象存储服务(OBS)中,以便在缓存实例发生异常后能够使用备份数据进行恢复,保障业务正常运行。

备份方式

DCS缓存实例支持自动和手动两种备份方式。

  • 自动备份

    您可以通过管理控制台设置一个定时自动备份策略,在指定时间点将实例的缓存数据自动备份存储。

    定时备份频率以天为单位,您根据需要,选择每周备份一次或多次。备份数据保留最多7天,过期后系统自动删除。

    定时备份主要目的在于让实例始终拥有一个完整的数据副本,在必要时可以及时恢复实例数据,保证业务稳定,实例数据安全多一重保障。

  • 手动备份

    除了定时备份,DCS还支持由用户手动发起备份请求,将实例当前缓存数据进行备份,并存储到对象存储服务(OBS)中。

    您在执行业务系统维护、升级等高危操作前,可以先行备份实例缓存数据。

    缓存实例在使用过程中,备份数据不会自动清除,您可根据需要手动删除备份数据。当删除实例时,备份数据会随实例删除,如果需要保存备份数据,请提前将备份数据下载保存。

备份的其他说明

  • 支持备份的实例类型
    • 只有“主备”、“Proxy集群”和“Cluster集群”实例类型的Redis实例支持数据备份与恢复功能,“单机”Redis实例暂不支持。单机实例若需要备份,可参考Redis单机实例使用Redis-cli工具备份,使用Redis-Cli工具导出rdb文件。
    • 只有“主备”类型的Memcached实例支持数据备份与恢复功能,“单机”类型Memcached实例暂不支持。
  • 备份原理

    Redis 3.0实例采用Redis的AOF方式进行持久化,Redis 4.0及以上版本的实例,如果是手动备份,支持选择RDB格式和AOF格式进行持久化;如果是自动备份,仅支持RDB格式进行持久化。

    备份任务在备节点执行,DCS通过将备节点的数据持久化文件压缩并转移到对象存储服务(OBS)中存储,从而实现实例数据备份。

    DCS以小时为单位,定期检查所有实例的备份策略,对于需要执行备份的实例,启动备份任务。

  • 备份过程对实例的影响

    备份操作是在备节点执行,备份期间不影响实例正常对外提供服务。

    在全量数据同步或者实例高负载的场景下,数据同步需要一定的时间,在数据同步没有完成的情况下开始备份,备份数据与主节点最新数据相比,有一定延迟。

    由于备节点停止将发生的最新数据变化持久化到磁盘文件,备份期间主节点如有新的数据写入,备份文件也不会包含备份期间的数据变化。

  • 备份时间点的选择

    建议选择业务量少的时间段进行备份。

  • 备份文件的存储

    备份文件存储在对象存储服务(OBS)中。

  • 定时备份异常的处理

    定时备份任务触发后,如果实例当前正在进行重启、扩容等操作,则定时任务顺延到下一时间段处理。

    实例备份失败或者因为其他任务正在进行而推迟备份,DCS会在下一时间段继续尝试备份,一天最多会尝试三次。

  • 备份数据保存期限

    定时备份产生的备份文件根据您设置的策略保留1-7天,超期由系统自动删除,但至少会保留一个数据备份文件。

    手动备份的数据保存期限无限制,由用户根据需要自行删除。当删除实例时,备份文件会随实例删除,如需保留备份数据,请提前下载备份文件到本地。

关于数据恢复

  • 数据恢复流程
    1. 您通过控制台发起数据恢复请求。
    2. DCS从对象存储服务(OBS)获取数据备份文件。
    3. 暂停实例数据读写服务。
    4. 替换主实例的持久化文件。
    5. 重新加载新的持久化文件。
    6. 完成数据恢复,对外提供数据读写服务。
  • 数据恢复对业务系统的影响

    恢复操作是将备份文件在主节点执行,实例数据恢复期间需暂停数据读写服务,直到主实例完成数据恢复。

  • 数据恢复异常处理

    数据恢复文件如果被损坏,DCS在恢复过程中会尝试修复。修复成功则继续进行数据恢复,修复失败,DCS主备实例会将实例还原到执行恢复前的状态。