Fast Import使用说明

更新时间:2025-03-27 02:17:33

PolarDB MySQL提供的Fast Import特性,允许用户在下发库表恢复任务后,等待约5~10分钟(和恢复数据量大小无关)即可查询恢复任务中库表的全量数据,无需等待恢复任务完成。

场景概述

说明

Fast Import 特性与库表恢复新流程兼容,查询操作可与恢复任务同时进行。

Fast Import特性可以加速以下两种场景:

  • 当数据或表被误删除,且无法确定具体时间点时,传统的恢复任务可能需要等待很长时间才能完成。通过Fast Import特性,用户无需等待恢复任务结束即可快速查询和校验数据。

  • 当少量数据被误删除,但所在表规模较大时,Fast Import特性支持用户通过INSERT ... SELECT ...的方式,快速从恢复任务的表中提取所需数据,并将其插入到被误删数据的表中,从而提升操作效率。

版本限制

适用的数据库引擎版本为MySQL 8.0.1,且小版本需为8.0.1.1.48及以上版本。您可以通过查询版本号来确认集群版本。

注意事项

说明

目前该功能在灰度中,如需使用,您可以联系我们加入白名单,启用该功能。

  • 仅支持file-per-table配置(默认配置),非压缩且非加密表,在恢复任务执行过程中查询数据。

  • 恢复任务表的数量在1000以下,系统会默认启用Fast Import特性,从而支持在恢复过程中查询全量数据。

    说明

    恢复任务数量在1000以上,系统不会启用Fast Import特性。管理任务流程会自动根据您当前下发任务判断来是否开启Fast Import特性。

  • 仅支持在读写(RW)节点和只读(RO)节点执行查询操作。如果存在列存只读(RO)节点,可使用HINT语法强制路由到读写(RW)或者行存只读(RO)节点,否则可能会查询不到数据。

  • buffer pool资源充足时,访问恢复状态表的效率与正常表相当,但在集群负载较高的场景下,访问恢复状态表的效率会受到限制,以降低对正常业务的影响。

  • 在恢复任务完成之前,仅允许以只读模式访问恢复的目标表。

使用说明

下发库表恢复任务

在下发库表恢复任务之后,可通过页面右上角的详情链接进入到任务详情页面

image

在任务详情页面可看到任务的实时进度,在步骤4结束后可通过show databasesshow tables等操作确认恢复任务已创建目标库/表,此时即可查询目标库/表的全量数据。

image

只读快速访问

您可以通过查询information_schema.fast_import_tablespaces表,获取当前恢复任务中所有支持快速只读访问的表信息。

说明

当前正处于导入状态的表可以进行快速只读访问,但在下面的查询结果中不会显示具体表名。您可以通过执行SHOW PROCESSLIST命令来查看包含dbms_rman.importSQL语句,获取当前正在恢复的表名。

SELECT * FROM information_schema.fast_import_tablespaces;

图 1. 为处于恢复状态的表可只读访问全量数据。

image

图 2. 为其他已开启快速访问的表可以只读访问全量数据。

image.png

常用问题

查询恢复的目标表数据为空?

确保当前任务已执行至“主节点库表恢复步骤”,并满足以下条件:

  • 表信息存在于information_schema.fast_import_tablespaces列表中。

  • 或者正在执行dbms_rman.import SQL操作并且满足其条件注意事项

如果表数据量非常大,查询恢复状态中的表是否有其他影响?

Fast Import特性主要用于快速校验和恢复数据。需要注意以下事项:

  • 查询恢复中的表,其对数据库集群的影响与在正常表上执行相同数据量的查询等效。

  • 不推荐对正在恢复的表执行连续的、长时间的大规模查询操作。

对恢复的目标做更新操作报错?

information_schema.fast_import_tablespaces列表中的表以及正在执行dbms_rman.importSQL操作的表,表示这些表正处于恢复或即将进行恢复的状态。这些表仅允许只读访问,不支持任何更新或修改操作。

image

联系我们

若您对Fast Import有任何疑问,可通过钉钉搜索群号入群咨询。您可以直接@群内专家,并附上您要咨询的问题。同时群内也有PolarDB MySQL小助手24*7小时在线回答您的问题。钉钉群号:28000021116。

  • 本页导读 (1)
  • 场景概述
  • 版本限制
  • 注意事项
  • 使用说明
  • 下发库表恢复任务
  • 只读快速访问
  • 常用问题
  • 查询恢复的目标表数据为空?
  • 如果表数据量非常大,查询恢复状态中的表是否有其他影响?
  • 对恢复的目标表做更新操作报错?
  • 联系我们