文档

库表恢复方式2:恢复到过去时间点

更新时间:

库表恢复是指仅恢复指定的部分库或部分表到原集群。例如游戏业务中有时仅需恢复某个或某些玩家的数据,此时可使用库表恢复方式。库表恢复支持从备份集恢复和恢复到过去时间点两种备份方式。本文介绍如何将指定的库或表恢复到过去时间点。

简介

PolarDB提供的库表恢复功能,不会覆盖和删除原集群中已有的库表,不会将数据写入原集群的库表中,而是在原集群中新建库表。您可以在库表恢复过程中指定新的库名或表名,通过指定库和表的方式,将db1的备份数据恢复到db2

库表恢复过程中,不会影响原集群数据库的正常访问,但可能会占用原集群的计算资源,从而导致集群CPU和IOPS使用率升高。

版本要求和使用限制

版本要求

说明

您可以通过查询版本号来确认集群版本。

  • 当前PolarDB MySQL版企业版标准版都支持库表恢复功能,具体版本要求及限制如下。

    • PolarDB企业版支持库表恢复。目前仅集群版系列支持库表恢复功能,集群版本要求如下:

      • PolarDB MySQL版5.6版本,修订版本需为5.6.1.0.25及以上。

      • PolarDB MySQL版5.7版本,修订版本需为5.7.1.0.8及以上。

      • PolarDB MySQL版8.0.1版本,修订版本需为8.0.1.1.14及以上。

      • PolarDB MySQL版8.0.2版本,修订版本需为8.0.2.2.0及以上。

    • PolarDB标准版支持库表恢复,集群版本要求如下:

      • PolarDB MySQL版5.7版本X86架构,修订版本需为5.7.1.0.30及以上。

      • PolarDB MySQL版8.0.1版本X86架构,修订版本需为8.0.1.1.38.2及以上。

      • PolarDB MySQL版8.0.2版本X86架构,修订版本需为8.0.2.2.21及以上。

      • PolarDB MySQL版8.0.1版本倚天(ARM)架构,修订版本需为8.0.1.1.41及以上。

      • 若存储类型为云盘,则不支持50000张表以上的库表恢复。

  • GDN中的主集群支持库表恢复功能,集群版本要求如下:

    • 企业版

      • PolarDB MySQL版5.6版本,修订版本为5.6.1.0.42及以上。

      • PolarDB MySQL版5.7版本,修订版本需为5.7.1.0.30及以上。

    • 标准版

      • PolarDB MySQL版5.6版本,修订版本为5.6.1.0.42及以上。

      • PolarDB MySQL版5.7版本,修订版本需为5.7.1.0.30及以上。

      • PolarDB MySQL版8.0.1版本,修订版本需为8.0.1.1.38.2及以上。

      • PolarDB MySQL版8.0.2版本,修订版本需为8.0.2.2.21及以上。

  • 支持使用库表恢复新版的集群版本要求如下:

    • 企业版

      • PolarDB MySQL版5.6版本,修订版本为5.6.1.0.42及以上。

      • PolarDB MySQL版5.7版本,修订版本需为5.7.1.0.30及以上。

      • PolarDB MySQL版8.0.1版本,暂不支持使用库表恢复新版。

      • PolarDB MySQL版8.0.2版本,暂不支持使用库表恢复新版。

    • 标准版

      • PolarDB MySQL版5.6版本,修订版本为5.6.1.0.42及以上。

      • PolarDB MySQL版5.7版本,修订版本需为5.7.1.0.30及以上。

      • PolarDB MySQL版8.0.1版本,修订版本需为8.0.1.1.38.2及以上。

      • PolarDB MySQL版8.0.2版本,修订版本需为8.0.2.2.21及以上。

    说明

    库表恢复新版是在库表恢复旧版的基础上,对数据恢复至原集群的速度进行了优化。其原理和速度可参见整体流程和预估时间

使用限制

  • PolarDB多主集群(库表)不支持库表恢复。

  • 不支持在包含全局二级索引(Global Secondary Index)的表上使用库表恢复功能。

  • 如果实例没有RO节点,超过50000张表时将不支持库表恢复功能。

  • 不支持在GDN中的从集群上使用库表恢复功能。

  • 库表恢复功能不支持恢复列存索引。

  • 不支持在归档为冷数据的表上使用库表恢复功能。

  • 库表恢复功能只支持恢复以InnoDB为存储引擎的表。

说明

若您当前集群不支持使用库表恢复功能,您可以通过全量恢复方式1:从备份集恢复全量恢复方式2:恢复到过去时间点的方式将数据恢复到新的集群,再将数据迁移至原集群。

注意事项

  • 当前库表恢复方式中的恢复到过去时间点,只支持从一级备份的过去时间点恢复,不支持从二级备份恢复。

  • 库表恢复只会恢复指定的表,操作时请确认已选中所有需要恢复的表。

    说明

    若无法确定所有涉及的表,建议您将整个集群的历史数据恢复到一个新集群后再迁移至原集群。更多详情,请参见全量恢复方式1:从备份集恢复全量恢复方式2:恢复到过去时间点

  • 在以下场景执行库表恢复操作时,库表恢复会执行失败。

    • 指定的库名或表名在原集群中已存在。

    • 从备份集生成时间点到恢复时间点期间,恢复的表被删除或集群中存在与目标库或目标表同名的库表。

  • 若选择非整库恢复,该库每次最多支持恢复100张表。若选择恢复库,则支持恢复的表数量为该库下所有的表。

    说明
  • 集群内的表(包括系统表)超过50000张时也可以使用库表恢复功能。

    说明
    • 该功能目前处于灰度阶段,如需使用,您可以联系我们加入白名单,启用该功能。

    • 查询集群内的表(包括系统表)数量。SQL语句如下:

      SELECT COUNT(*) FROM information_schema.tables;
    • 查询集群内的系统表数量。SQL语句如下:

      SELECT COUNT(*) FROM information_schema.tables WHERE table_schema IN ('sys', 'performance_schema', 'mysql', 'information_schema', '__recycle_bin__');
  • 库表恢复功能不支持恢复触发器(Trigger),若原表设置了Trigger,该Trigger不会被恢复。

  • 库表恢复功能不支持恢复外键(Foreign Key),若原表设置了Foreign Key,该Foreign Key不会被恢复。

操作步骤

  1. 登录PolarDB控制台

  2. 在左上角,选择集群所在地域。

  3. 找到目标集群,单击集群ID。

  4. 在左侧导航栏中,选择配置与管理 > 备份恢复

  5. 备份恢复页面,单击库(表)恢复
  6. 在弹出的对话框中,选择恢复方式按时间点,并选择需要恢复至的时间点。

    2

    说明

    恢复至的时间点选择需符合可恢复时间点的限制,同时离该时间点最近一份全量备份集中必须存在需要恢复的表,才能正常使用按时间点恢复功能。可恢复时间点的范围与备份设置中的日志备份保留期限有关,默认为7天。

  7. 需要恢复的库和表区域左侧,选中需要恢复的目标库,并在右侧选中目标表。

    1

    说明
    • 若您未指定库名和表名,则系统会通过在原库名或原表名后添加_backup的方式,来自动生成新的库名和表名。如原表为test,则自动生成的新的表名为test_backup

    • 若选中目标库后但未指定具体的数据表,默认恢复该库下的所有数据。

  8. 单击确定即可。

相关API

API描述
DescribeMetaList调用DescribeMetaList接口查看支持恢复的库表元信息详情。
RestoreTable调用RestoreTable恢复PolarDB库表。