介绍如何通过管理控制台对DCS缓存实例进行数据备份,以及备份数据恢复。
备份缓存数据的必要性
业务系统日常运行中可能出现一些小概率的异常事件,比如异常导致缓存实例出现大量脏数据,或者在实例出现故障后持久化文件不能重新加载。部分可靠性要求非常高的业务系统,除了要求缓存实例高可用,还要求缓存数据安全、可恢复,甚至永久保存。
DCS支持将当前时间点的实例缓存数据备份并存储到对象存储服务(OBS)中,以便在缓存实例发生异常后能够使用备份数据进行恢复,保障业务正常运行。
备份方式
DCS缓存实例支持自动和手动两种备份方式。
- 自动备份
您可以通过管理控制台设置一个定时自动备份策略,在指定时间点将实例的缓存数据自动备份存储。
定时备份频率以天为单位,您根据需要,选择每周备份一次或多次。备份数据保留最多7天,过期后系统自动删除。
定时备份主要目的在于让实例始终拥有一个完整的数据副本,在必要时可以及时恢复实例数据,保证业务稳定,实例数据安全多一重保障。
- 手动备份
除了定时备份,DCS还支持由用户手动发起备份请求,将实例当前缓存数据进行备份,并存储到对象存储服务(OBS)中。
您在执行业务系统维护、升级等高危操作前,可以先行备份实例缓存数据。
缓存实例在使用过程中,备份数据不会自动清除,您可根据需要手动删除备份数据。当删除实例时,备份数据会随实例删除,如果需要保存备份数据,请提前将备份数据下载保存。
备份的其他说明
- 支持备份的实例类型
只有“主备”、“读写分离”“Proxy集群”和“Cluster集群”实例类型的Redis实例支持数据备份与恢复功能,“单机”Redis实例暂不支持。单机实例若需要备份,可使用Redis-Cli工具导出rdb文件。
- 备份原理
Redis 3.0实例采用Redis的AOF方式进行持久化,Redis 4.0/5.0/6.0实例,如果是手动备份,支持选择RDB格式和AOF格式进行持久化;如果是自动备份,仅支持RDB格式进行持久化。
备份任务在备节点执行,DCS通过将备节点的数据持久化文件压缩并转移到对象存储服务(OBS)中存储,从而实现实例数据备份。
DCS以小时为单位,定期检查所有实例的备份策略,对于需要执行备份的实例,启动备份任务。
- 备份过程对实例的影响
备份操作是在备节点执行,备份期间不影响实例正常对外提供服务。
在全量数据同步或者实例高负载的场景下,数据同步需要一定的时间,在数据同步没有完成的情况下开始备份,备份数据与主节点最新数据相比,有一定延迟。
由于备节点停止将发生的最新数据变化持久化到磁盘文件,备份期间主节点如有新的数据写入,备份文件也不会包含备份期间的数据变化。
- 备份时间点的选择
建议选择业务量少的时间段进行备份。
- 备份文件的存储
备份文件存储在对象存储服务(OBS)中。
- 定时备份异常的处理
定时备份任务触发后,如果实例当前正在进行重启、扩容等操作,则定时任务顺延到下一时间段处理。
实例备份失败或者因为其他任务正在进行而推迟备份,DCS会在下一时间段继续尝试备份,一天最多会尝试三次。
- 备份数据保存期限
定时备份产生的备份文件根据您设置的策略保留1-7天,超期由系统自动删除,但至少会保留一个数据备份文件。
手动备份的数据保存期限无限制,由用户根据需要自行删除。当删除实例时,备份文件会随实例删除,如需保留备份数据,请提前下载备份文件到本地。
关于数据恢复
- 数据恢复流程
a. 您通过控制台发起数据恢复请求。
b. DCS从对象存储服务(OBS)获取数据备份文件。
c. 暂停实例数据读写服务。
d. 替换主实例的持久化文件。
e. 重新加载新的持久化文件。
f. 完成数据恢复,对外提供数据读写服务。
- 数据恢复对业务系统的影响
恢复操作是将备份文件在主节点执行,实例数据恢复期间需暂停数据读写服务,直到主实例完成数据恢复。
- 数据恢复异常处理
数据恢复文件如果被损坏,DCS在恢复过程中会尝试修复。修复成功则继续进行数据恢复,修复失败,DCS主备实例会将实例还原到执行恢复前的状态。