文档

通过数据闪回按时间点恢复数据

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

开启数据闪回后,在备份文件的保存期内,您可以将实例整体或指定Key的数据恢复至某个秒级的时间点(PITR,point-in-time recovery),同时支持选择将数据恢复至新实例或当前实例。数据闪回功能拥有更精细化的数据恢复能力,能最大程度地降低误操作带来的数据损失,保护您的数据安全。

数据闪回功能概述

为保护您在云上的业务数据,Tair(Redis企业版)除支持通过RDB快照执行数据备份和恢复以外,提供了数据闪回功能,优化基于AOF(Append-only-file)的持久化机制,将AOF增量归档,可实现方便快捷的秒级恢复,提升运维便捷性,可将其作为持久化存储引擎。

说明

恢复数据至原实例时,由于待恢复的Key会被写回原实例,可能会引起原实例的QPS或延迟上升,请在业务低峰期操作。

图 1. 数据闪回两种模式介绍数据闪回两种模式

前提条件

  • 实例的部署模式为云原生版,产品系列为Tair(Redis企业版)内存型持久内存型

  • 实例的部署模式为经典版,产品系列为Tair(Redis企业版)内存型,并且实例架构为标准架构或集群架构。

说明

您可以在控制台查看实例的实例规格信息,确认实例架构。

使用限制

  • 由于开启数据闪回功能后,系统需要上传相关的数据与日志,请勿在开启后立即使用,如需使用此功能请提前开启。

  • 可恢复的时间范围为当前时间点至数据闪回功能开启的时间点(最长为7天)。

  • 开启数据闪回功能后,如下操作会关闭数据闪回功能或影响可恢复的时间点。

    • 若变配实例的架构(例如从标准架构变配至集群架构等)、迁移可用区操作,数据闪回功能将关闭,如需继续使用请重新配置。

    • 若新增或删减了集群架构的分片数,数据闪回功能备份的新、老节点数据可能会不一致,如需继续使用请重新配置。

    • 若执行了变更配置、升级小版本等操作,可恢复的时间点将以完成变更配置的时间点为起点。

  • 云原生版实例仅支持恢复全量数据至新实例中,不支持恢复指定Key

费用说明

数据闪回功能处于试用期,目前可免费恢复7天内的数据,正式推出后将根据恢复的时间点收取费用,请关注本文或官网公告。

说明

执行数据闪回时,如果选择为恢复至新实例,系统将创建一个新的实例并将数据恢复至该实例(可选择付费类型为按量付费,验证完成后释放),您需要为新实例支付相关费用,详情请参见计费项

开启数据闪回

  1. 访问Redis实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏,单击备份与恢复

  3. 备份与恢复页面,单击数据闪回页签。

  4. 单击马上开启

    由于系统需要上传相关的数据与日志,开启数据闪回功能需要一定时间,控制台将显示预计开启完成的时间点。

    重要

    在数据闪回功能完全开启后,写入的数据才支持被闪回。

执行数据闪回

  1. 访问Redis实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏,单击备份与恢复

  3. 备份与恢复页面,单击数据闪回页签。

  4. 单击马上闪回,在弹出的界面中完成闪回配置。

    参数

    说明

    闪回数据

    • 全量数据:恢复实例中的所有数据。

    • 指定Key:指定要恢复的Key,每行填写1个Key名,支持正则表达式,例如:

      • 英文句号(.):匹配除'\r\n'之外的任何单个字符。

      • 星号(*):匹配前面子表达式任意次,例如h.*llo将匹配hlloheeeello等。

      • 英文问号(?):表示匹配前面子表达式零次或1次,例如h.?llo将匹配hllohello

      • 字符集合[characters]:匹配方括号内任意一个字符,例如h[ae]llo将匹配hallohello

      • 负值字符集合[^characters]:不匹配方括号内任意一个字符,例如h[^ae]llo将匹配hcllohdllo,但不匹配hallohello

      • 字符范围[character1-character2]:匹配character1-character2范围内的字符,例如h[a-b]llo将匹配hallohbllo

      说明

      为避免影响数据恢复的速度,推荐指定的Key不超过10个,如果是带正则表达式的Key,不超过3个。

    恢复模式

    • 新建实例:将数据恢复至新实例。

    • 原实例:将数据恢复至当前实例。

      警告

      仅当选择闪回数据指定Key时,支持恢复至原实例

      实例会删除指定Key,再根据备份集将指定Key恢复至指点时间点,对实例中其他Key数据不产生影响。

    闪回时间点

    指定闪回时间点(即数据要恢复到的时间点)。

    过期KEY时间处理方式

    • 默认:对Key的过期时间不进行处理,若Key在提交本次恢复任务时已过期,将无法被恢复。

    • 时间偏移:对Key的过期时间进行偏移处理,同时您还需设置过期偏移时间。实例会在设置的过期偏移时间点开始计算Key在指定闪回时间点剩余的过期时长。

      例如在2022年12月12日10:30:00对Key foo进行恢复 ,设置过期偏移时间为2022年12月12日10:30:00,指定闪回时间点为2022年12月12日10:00:00,若在2022年12月12日10:00:00时foo的剩余过期时长为10s,则foo将于2022年12月12日10:30:10过期。

      说明

      经典版实例支持该功能。

      过期偏移时间不能早于指定的闪回时间点,也不能晚于提交恢复任务的时间点。

  5. 单击确定

    • 选择恢复模式原实例时,当前实例将进入备份恢复中状态,等待实例状态变更为运行中即可。

    • 选择恢复模式新建实例时,您需要在跳转到的克隆实例,选择备份时间点(即数据要恢复到的时间点)和新实例的配置。

      说明

      新实例的架构需选择为标准版或集群版,且实例规格的容量需大于等于原实例,关于创建实例的各参数的解释,请参见创建Redis实例

相关API

API接口

说明

ModifyBackupPolicy

修改Redis实例的自动备份策略,可通过EnableBackupLog参数开启或关闭数据闪回功能。

同时,您还需确保已在实例的参数设置中开启AOF持久化(appendonly为yes),开启后才能使用数据闪回功能,更多信息请参见Tair配置参数列表

RestoreInstance

将备份文件中的数据恢复到当前Redis实例中,结合数据闪回更可实现将指定的Key恢复至某个秒级时间点。