有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
文档中心 > 最佳实践 > TDSQL-C MySQL 版 > 一键迁移校验出非 InnoDB 表单问题处理方案
TDSQL-C MySQL 版提供一键迁移功能,可以从云数据库 MySQL 一键迁移至云原生数据库 TDSQL-C MySQL 版。本文为您介绍在执行一键迁移过程中的迁移检查步骤,提示“具备非 InnoDB 表单,无法迁移”的处理方案。
说明:
本文中的迁移源端数据库,指使用一键迁移功能的源端数据库:云数据库 MySQL 实例。

一键迁移功能

如您之前并未使用过一键迁移功能,但需提前了解本文的问题场景和处理方案,您可通过以下文字跳转了解一键迁移功能。

问题现象

执行一键迁移过程中的迁移检查步骤,提示“具备非 InnoDB 表单,无法迁移”,如下图所示。


问题原因

1. 迁移源端数据库下有非 InnoDB 表单。
2. 迁移源端数据库在一键迁移之前,执行过 DTS 迁移任务,产生了系统库__tencentdb__
说明:
使用 DTS 数据迁移功能从 MySQL 迁移数据至腾讯云数据库 MySQL 时,DTS 会使用执行迁移任务的账号在源库中写入系统库__tencentdb__,用于记录迁移任务过程中的数据对比信息。

处理建议

针对问题原因1:迁移源端数据库下有非 InnoDB 表单。
TDSQL-C MySQL 版仅支持 InnoDB 引擎迁移,若需要迁移的 MySQL 实例下存在非 InnoDB 表单,则目前无法迁移。
针对问题原因2:迁移源端数据库在一键迁移之前,执行过 DTS 迁移任务,产生了系统库__tencentdb__
迁移源端数据库下存在系统库__tencentdb__也会在一键迁移检查时触发上述问题现象,导致无法进行一键迁移。此时可以在迁移源端数据库检查是否还有未完成的 DTS 迁移任务,如果没有,则可以将迁移源端数据库下的__tencentdb__库删除后再重新执行一键迁移。

操作步骤

针对问题原因2的处理操作步骤如下。

步骤1:查看迁移源端数据库是否存在未完成的 DTS 迁移任务

1. 登录 DTS 控制台
2. 在左侧导航选择数据迁移页,在上方选择地域,然后在迁移任务列表中查看是否存在与迁移源端数据库有关的未完成的 DTS 迁移任务。

若存在与迁移源端数据库有关的未完成的 DTS 迁移任务,则需根据实际情况,先完成迁移任务,使相关的 DTS 迁移任务状态为“任务成功”再进行 步骤2
若不存在与迁移源端数据库有关的未完成的 DTS 迁移任务,则进行 步骤2

步骤2:删除迁移源端数据库的__tencentdb__

1. 登录 MySQL 控制台
2. 在实例列表,找到目标实例,在其操作列单击登录
3. 在 DMC 数据库管理控制台,输入账号和密码单击登录
4. 在 SQL 窗口,并执行如下命令删除__tencentdb__库。
说明:
删除前请确认源端数据库的云数据库 MySQL 实例的 DTS 迁移任务已完成。
DROP DATABASE __tencentdb__;


步骤3:重新执行一键迁移

完成 步骤1步骤2 之后,重新进行一键迁移操作,即可通过迁移检查。