恢复库表

RDS MySQL支持常规和极速级别的库表恢复功能,您可以将指定的库、表按备份集或时间点恢复至原实例或新实例,无需恢复全部数据,可用于误操作后的快速订正,以及分析历史数据等场景。

库表恢复模式的区别

库表恢复速度有常规、极速级别,极速库表恢复通过性能型沙箱实例实现,在相同的数据量下,极速库表恢复相较常规库表恢复提升了约50%~95%的恢复速度;如何开启极速库表恢复,请参见开启极速库表恢复

image

对比项

常规库表恢复

极速库表恢复

恢复范围

恢复实例中指定的库、表。

恢复实例中指定的库、表。

恢复位置

  • 本地盘:支持恢复到原实例和新实例。

  • 云盘:仅支持恢复到原实例。

  • 本地盘:仅支持恢复到原实例。

  • 云盘:不支持极速库表恢复功能。

恢复速度

与数据量有关,恢复速度较慢。

与数据量有关,在常规库表恢复功能的基础上,提升约50%~95%的恢复速度。

恢复方式

支持按备份集和时间点恢复。

  • 免费版:支持恢复到最近一个全量备份的时间点。

  • 付费版:支持按备份集和任意时间点恢复。

说明
  • 只有实例开启了日志备份后,才可恢复到日志备份保留时长内的任意时间点。如果未开启日志备份,仅支持恢复至已有数据备份所在的时间点。

  • 恢复范围取决于日志备份和数据备份保留时长、开启库表恢复的时间点等,日志备份和数据备份保留时间最大可设置为730天。您可调用DescribeLocalAvailableRecoveryTime接口查询RDS实例备份可恢复的时间范围。

  • 如需了解其他数据恢复方案,请参见数据恢复方案概览

前提条件

常规库表恢复

本地盘

  • RDS实例需满足以下条件:

    • 大版本:8.0、5.7或5.6

    • 系列:高可用系列

    • 存储类型:本地SSD盘

    说明

    您可以前往实例基本信息页面查看以上信息。

  • 实例的表数量需低于50000。

  • 若您初次使用RDS备份服务,您需要使用阿里云主账号完成DBS服务关联角色(AliyunServiceRoleForDBS)授权。具体操作,请参见如何授权DBS服务关联角色

  • 请确保实例库表恢复功能处于开启状态。

    您可前往实例详情页的备份恢复页面,在备份策略页面下,查看库表恢复功能的状态。如未开启,请将库表恢复设置为开启。

    重要
    • 开启库表恢复后,备份格式会修改(从tar压缩包变成xbstream文件包),用于支持库表恢复。

    • 新实例的库表恢复功能默认开启,该功能开启后不支持关闭。

    • 开启库表恢复功能前产生的备份集,无法用于库表恢复。您需要在开启库表恢复功能后,先手动进行一次全量备份,再选择库表恢复功能开启后产生的备份集进行库表恢复。

      必要时,您也可参考恢复全量数据操作进行恢复。

云盘

  • RDS实例需满足以下条件:

    • 大版本:8.0、5.7

    • 系列:高可用系列、基础系列、集群系列

    • 存储类型:SSD云盘、ESSD云盘、通用云盘

    说明

    您可以前往实例基本信息页面查看以上信息。

  • 若您初次使用RDS备份服务,您需要使用阿里云主账号完成DBS服务关联角色(AliyunServiceRoleForDBS)授权。具体操作,请参见如何授权DBS服务关联角色

  • 请确保实例库表恢复功能处于开启状态。

    • 新实例(2023年12月01日及之后创建的实例):库表恢复功能默认开启,不支持关闭。

    • 旧实例(2023年12月01日前创建的实例):系统将强制关闭实例已开启的库表恢复功能。您可前往实例详情页的备份恢复页面,在备份策略页签下重新开启库表恢复功能。开启后实例现有的有效备份集可以立即用于库表恢复。该功能开启后,不再支持关闭。

      重要

      如果已有备份集无效,无法用于库表恢复时,您可在库表恢复功能开启后,手动进行一次全量备份,再选择库表恢复功能开启后产生的备份集进行库表恢复。

极速库表恢复

  • RDS实例需满足以下条件:

    • 大版本:8.0、5.7或5.6

    • 系列:高可用系列

    • 存储类型:本地SSD盘(云盘不支持极速库表恢复功能

    • 实例所在地域:华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华南1(深圳)

    说明

    您可以前往实例基本信息页查看以上信息。

  • 实例的存储引擎必须为InnoDB。

  • 若您初次使用RDS备份服务,您需要使用阿里云主账号完成DBS服务关联角色(AliyunServiceRoleForDBS)授权。具体操作,请参见如何授权DBS服务关联角色

  • 实例未开启容量型沙箱实例,如已开启,请先关闭。更多信息,请参见RDS MySQL应急恢复

    说明

    如果已经开启容量型沙箱,又开启极速库表,会导致沙箱升级到性能型沙箱,造成应急恢复费用增加。

  • 请确保实例极速库表恢复功能处于开启状态。

    您可前往实例详情页的备份恢复页面,在备份策略页面下,查看极速库表恢复功能的状态。如未开启,请将极速库表恢复设置为开启。具体操作,请参见开启极速库表恢复

    重要

    开启极速库表恢复功能前产生的备份集,无法用于极速级别的库表恢复。您需要在开启极速库表恢复功能后,先手动进行一次全量备份,再选择极速库表恢复功能开启后产生的备份集进行库表恢复。

    必要时,您也可参考恢复全量数据操作进行恢复。

注意事项

  • 新实例的库表恢复功能(常规级别)默认开启,该功能开启后无法关闭。更多关于各种级别的库表恢复时需要注意的事项,请参考本文的前提条件部分。

  • 如果您需要按时间点恢复数据,需要确保实例日志备份处于开启状态。如何开启,请参见设置日志备份

  • 本地盘实例如果恢复到原实例,恢复过程中会进行主备切换,RDS可能会出现约30~120秒的服务不可用,请确保您的应用有自动重连机制;恢复到新实例不会进行主备切换。

    重要

    云盘实例使用库表恢复功能恢复数据到原实例时,不会进行主备切换,但某些情况下恢复可能会影响原实例性能,甚至出现实例切换。实例切换的影响请参见实例切换的影响

  • 恢复任务发起后不支持暂停或取消。

  • 云盘实例库表恢复完成后会产生一个全量备份。

使用限制

  • 本地盘实例的极速库表恢复功能仅支持恢复到原实例,不支持恢复到新实例。

  • 未开启日志备份的实例,会导致极速库表恢复失败,无法执行极速库表恢复。

  • 带有只读节点的实例,不支持使用极速库表恢复

  • 采用了透明数据加密TDE(Transparent Data Encryption)的实例,不支持使用极速库表恢复

  • 如果恢复过程中的binlog日志包含对指定表进行重命名(rename)操作,或者该表中存在生成列(generated column),则库表恢复功能将无法对该表进行恢复。

  • 如果恢复过程中涉及的库表数据过多、数据量过大或者用户指定时间点内的binlog数量过多,可能会导致恢复时间过长。

费用说明

常规库表恢复

本地盘

本地盘实例常规的库表恢复功能默认开启,不会产生费用。若使用常规库表恢复功能恢复到新实例,由于数据是恢复到新实例上,因此需要收取新实例费用,费用详情可在创建实例时查看。

说明
  • 如临时使用,您可以创建按量付费的新实例,把数据迁移到原实例,然后释放新实例

  • 实例创建完成后开始计费。

  • 实例存储类型为本地盘时,不支持Serverless功能。

云盘

自2023年12月01日起,云盘实例开启库表恢复功能后,备份架构将会升级,备份量会增加30%~80%。如果备份总大小未超过免费额度,备份不收费,超出免费额度的部分将根据实际使用量额外计费。计费标准,请参见备份费用

极速库表恢复

本地盘实例的极速库表恢复功能分免费版和付费版两种,具体收费详情如下(云盘实例不支持极速库表恢复功能):

  • 免费版:开启及使用极速库表恢复(免费版),不收取任何费用。

  • 付费版:开启及使用极速库表恢复(付费版)后,将根据数据量以按量付费形式进行计费。计费标准为:0.0336元/GB/天

说明
  • 免费版:支持恢复到最近一个全量备份的时间点。

  • 付费版:支持按备份集和任意时间点恢复。

开启极速库表恢复

若您需要使用极速库表恢复,您需先参考如下步骤开启极速库表恢复,再进行库表恢复,该功能仅适用于符合前提条件的本地盘实例。开启极速库表恢复操作对业务无影响。

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

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

    说明
    • 本地盘的极速库表恢复支持免费版和付费版两个版本,其中免费版仅支持最近一个全量时间点恢复数据,付费版支持任意时间点恢复数据。收费详情,请参见本文费用说明

    • 页面如果出现极速库表恢复商业化收费的弹窗,您可在勾选已知,不再提示后按需选择开启免费版或付费版。如未跳出该弹窗,请继续执行以下步骤。

  3. 备份恢复页面中选择备份策略页签。

  4. 单击基础备份区域后的编辑,将极速库表恢复设置为开启。

    说明
    • 对于MySQL本地盘实例,如果实例未开启库表恢复,则不会有库表恢复速度的选项。需要先单击库表恢复后面的开关开启库表恢复功能。更多库表恢复功能的详情内容,请参见注意事项

    • MySQL本地盘实例还需设置CDM付费类型CDM保留时长

      • 免费版:选择CDM付费类型为最近1个全量时间点(免费版),恢复后的数据保留时长固定为1天。

      • 付费版:选择CDM付费类型为任意时间点(付费版),恢复后的数据保留时长可按需设置1~730天。

  5. 单击确定

操作步骤

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

  2. 在左侧导航栏单击备份恢复,然后单击库表恢复

    说明

    控制台如未显示库表恢复按钮,请参见前提条件确认功能使用条件是否满足。

  3. 设置恢复的位置和方式。

    参数

    说明

    恢复位置

    • 恢复到原实例

    • 恢复到新实例:后续根据步骤5指引,自动新建一个RDS实例,将原实例的库/表数据恢复到新实例中,该过程不影响原实例。

      在新实例中验证数据后,您也可以把数据迁移回原实例

    说明

    仅本地盘实例显示恢复到新实例选项。

    恢复速度

    • 常规

    • 极速:极速库表恢复功能通过性能型沙箱实例实现,可以在常规库表恢复功能的基础上,提升约50%~95%的恢复速度。

    说明

    极速库表恢复仅支持恢复到原实例,不支持恢复到新实例。

    恢复方式

    • 按备份集

    • 按时间点:系统先恢复全量备份数据,再恢复增量日志备份数据。此处您可以选择时间点为日志备份保留时间内的任意时间点。如需查看或修改日志备份保留时间,请参见自动备份

      例如:RDS实例的数据备份和日志备份保留时长分别为7天,则最多可以恢复7天内的数据。7天前的备份集未保留,因此无法恢复。

      说明

      只有开启了日志备份,才会显示按时间点。开启方法,请参见自动备份

  4. 选择要恢复的库表,还可以设置恢复后的库名或表名,然后单击确定

    说明
    • 每次最多选择50个库或者表。

    • 恢复到原实例时,不会影响原实例数据,恢复后库名可与原库名相同,但恢复后表名不能与原表名相同。系统默认会在恢复后库名后面添加_backup,您也可以自主修改库名或表名为其他名称。

    • 如果恢复到原实例,请确认底部显示的已勾选的库和表的总大小,以及该实例剩余存储空间,确保剩余存储空间是否足够。

  5. 本地盘实例如果进行常规库表恢复并恢复到新实例,需选择付费方式并设置新实例的参数。

    • 包年包月:在新建实例时需要支付费用,适合长期需求。

    • 按量付费:按小时扣费。适合短期需求,用完可立即释放实例。

    参数名称

    说明

    可用区

    可用区是地域中的一个独立物理区域,不同可用区之间没有实质性区别。

    您可以选择将RDS实例与ECS实例创建在同一可用区或不同的可用区。

    说明

    新实例的地域与原实例相同,不支持修改。

    规格

    每种规格都有对应的CPU核数、内存、最大连接数和最大IOPS。具体请参见实例规格表

    存储空间

    该存储空间包括数据空间、系统文件空间、日志文件空间和事务文件空间。

    网络类型

    • 经典网络:传统的网络类型。

    • 专有网络(推荐):也称为VPC(Virtual Private Cloud)。VPC是一种隔离的网络环境,安全性和性能均高于传统的经典网络。

    说明

    您可前往任务列表查看新实例创建进度。库表恢复的更多方式请参见:

  6. (可选)连接RDS MySQL实例,查看恢复到原实例或新实例后的数据。具体操作,请参见连接RDS MySQL实例

    说明

    请确保连接实例所使用的账号具备数据库的查看或管理权限,建议使用高权限账号连接并查看。相关操作,请参见创建账号

相关操作

订正在线数据

恢复位置

订正在线数据方法

恢复到原实例

使用RENAME TABLE语句对恢复后的表进行重命名。

恢复到新实例

恢复到新实例后,您可使用数据传输DTS将需要的部分或全部库表数据迁移至原实例以订正原实例在线数据。

说明

创建数据迁移任务时,请将已恢复的新实例作为源库,将原实例作为目标库,接入方式均选择云实例

关闭极速库表恢复

如果您暂时不需要极速库表恢复功能,可以关闭该功能。关闭后不影响常规级别库表恢复功能的使用。

访问实例详情页的备份恢复页面,在备份策略页签下,单击基础备份区域后的编辑按钮,将极速库表恢复设置为关闭。

image.png

变更极速库表恢复模式(节省费用)

您可以按需将极速库表恢复模式调整为免费版,以节省恢复费用。变更为免费版后,后续在使用极速库表恢复功能恢复数据时,仅支持按备份集或最近一个全量时间点恢复,不能按任意时间点恢复。

访问实例详情页的备份恢复页面,在备份策略页签下,单击基础备份区域后的编辑按钮,将CDM付费类型设置为最近1个全量时间点(免费版)

image.png

相关API

API

描述

RestoreTable

恢复RDS实例的某个数据库或表到原实例上。

CloneDBInstance

恢复RDS实例的某个数据库或表到新实例上。

DescribeLocalAvailableRecoveryTime

查询RDS实例备份可恢复的时间范围。

常见问题

库表恢复时,出现错误提示操作失败,该实例状态下不支持此操作。如何处理?

RDS控制台的任务为串行运行,当存在进行中的恢复任务或其他任务时,再次重复执行恢复操作会导致该提示。请等待上一个恢复任务或其他任务结束后,再执行下一个恢复任务操作。

库表恢复时选不了库和表,出现错误提示Meta information is too large.(错误码:InvalidMeta.TooLarge)如何处理?

由于库表数量过多导致该报错,当前不支持恢复超过50000张表。必要时,建议您参考恢复全量数据方案,恢复全部数据到一个新实例中。

说明

按时间点恢复库表时,还原时间点加载不出,出现错误提示操作失败,当前指定的恢复时间无效,请重新设置恢复时间。(错误码:InvalidRestoreTime.Format)如何处理?

按时间点恢复库表时,需确保实例日志备份处于开启状态。您可以请前往实例备份恢复页面,在备份策略页面下查看或修改日志备份状态。更多详情,请参见日志备份设置

按备份集或时间点恢复库表时,出现错误提示元信息是空的(错误码:InvalidMeta.Empty)如何处理?

本地盘实例开启库表恢复功能前产生的备份集,无法用于库表恢复。您需要在开启库表恢复功能后,先手动进行一次手动备份,再选择库表恢复功能开启后产生的备份集进行库表恢复。

说明

必要时,您也可参考恢复全量数据操作进行恢复。

恢复后的表是空的,如何处理?

请确认恢复库表时您所选择的时间点表的数据是否存在。若该时间点表无数据,请选择有数据的时间点后再进行库表恢复操作。

针对单个误删除操作如何进行数据恢复?

您可使用DMS数据追踪功能按需追踪到目标时间段内的相关更新,汇总生成逆向的回滚语句,并通过数据变更工单最终执行到数据库中完成数据的恢复。

RAM子账号登录RDS控制台备份恢复页面,找不到库表恢复按钮?

如果您无法正常使用库表恢复功能,请检查您的RAM账号是否已添加AliyunDBSFullAccess权限。如何授权,请参见为RAM用户授权

库表恢复功能和应急恢复功能应该如何选择?

  • 库表恢复功能是指在误删除、误修改或其他意外导致数据丢失或损坏时,使用RDS提供的库表恢复功能,选择需要恢复的库和表,将数据还原到指定时间点的状态。适用于对特定库和表进行数据恢复的情况,例如在误操作导致部分数据丢失时,只需要对受影响的表进行恢复。

  • 应急恢复功能是指在误操作或其他意外导致数据丢失或损坏时,在沙箱实例(非RDS实例)上恢复指定时间点的数据。可用于历史数据比对、脏数据订正等场景;也可通过DTS将数据导回原实例,来支持数据丢失或损坏的情况。

说明

若同时开启极速库表恢复和应急恢复功能,CDM会通过后台合并存储来降低存储费用。更多数据恢复方案,请参见数据恢复方案概览

RDS云盘实例还有其他恢复库表的方法吗?

您可以使用数据灾备(DBS)对云数据库、ECS自建数据库进行备份与恢复,同时DBS也支持将云上备份集下载到本地。

说明

库表恢复的更多方式,请参见库表级恢复通过mysqldump进行备份和恢复