DCS备份恢复概述
介绍如何通过管理控制台对DCS缓存实例进行数据备份,以及备份数据恢复。
备份缓存数据的必要性
业务系统日常运行中可能出现一些小概率的异常事件,比如异常导致缓存实例出现大量脏数据,或者在实例出现故障后持久化文件不能重新加载。部分可靠性要求非常高的业务系统,除了要求缓存实例高可用,还要求缓存数据安全、可恢复,甚至永久保存。
DCS支持将当前时间点的实例缓存数据备份并存储到对象存储服务(OBS)中,以便在缓存实例发生异常后能够使用备份数据进行恢复,保障业务正常运行。
备份方式
DCS缓存实例支持自动和手动两种备份方式。
备份过程对实例的影响
备份操作是在备节点执行,备份期间不影响实例正常对外提供服务。
在主备节点全量数据同步或者实例高负载的场景下,数据同步需要一定的时间,在数据同步没有完成的情况下开始备份,备份数据与主节点最新数据相比,有一定延迟。
在实例备节点进行备份期间,如果主节点有新的数据写入,备份文件不会包含备份期间的数据变化。
备份的其他说明
- 支持备份的实例类型
- Redis的“主备”、“Proxy集群”、“Cluster集群”和“读写分离”实例支持数据备份与恢复功能,“单机”实例暂不支持。单机实例若需要备份,可参考Redis单机实例使用Redis-cli工具备份,使用redis-cli工具导出RDB文件。
- Memcached的“主备”实例支持数据备份与恢复功能,“单机”实例暂不支持。
- 备份原理
Redis 3.0实例采用的是AOF文件进行持久化,Redis 4.0及以上基础版实例,手动备份支持选择RDB格式和AOF格式进行持久化;自动备份仅支持RDB格式进行持久化。
如果需要导出Redis 3.0的RDB备份文件,可以通过redis-cli导出,使用命令:redis-cli -h {redis_address} -p 6379 -a {password} --rdb {output.rdb}。
- DCS Redis 3.0已下线,暂停售卖,建议使用Redis 4.0及以上版本。
- 放通了SYNC命令的Redis 3.0单机实例可以通过执行此命令将RDB文件导出;Redis 3.0 proxy实例由于架构的原因,不支持放通SYNC命令,因此不能导出RDB文件。
备份任务在备节点执行,DCS通过将备节点的数据持久化文件压缩并转移到OBS服务中存储,从而实现实例数据备份。
DCS以小时为单位,定期检查所有实例的备份策略,对于需要执行备份的实例,启动备份任务。
- 备份时间点的选择
- 备份文件的存储
- 自动备份异常的处理
自动备份任务触发后,如果实例当前正在进行重启、扩容等操作,则定时任务顺延到下一时间段处理。
实例备份失败或者因为其他任务正在进行而推迟备份,DCS会在下一时间段继续尝试备份,一天最多会尝试三次。
- 备份数据保存期限
自动备份产生的备份文件根据您设置的策略保留1-7天,超期由系统自动删除,但至少会保留最近一次的数据备份记录。
如果备份数量没有超出最大限制(24个),手动备份数据不会自动清除,您可根据需要手动删除备份数据。
- 自动和手动备份记录总数最多不超过24个,当备份记录超过24个时,自动删除最早的备份记录。
- 当删除实例时,备份数据会随实例删除,如果需要保存备份数据,请提前将备份数据下载保存。
- 删除所有备份文件,会影响备份文件相关能力,如故障时执行备份恢复,请谨慎操作。