本文介绍腾讯云MySQL数据库迁移到阿里云的步骤及注意事项。

前提条件

迁移限制

  • 结构迁移不支持 event 的迁移。
  • 对于数据类型为FLOAT或DOUBLE的列,DTS会通过ROUND(COLUMN,PRECISION)来读取该列的值。如果没有明确定义其精度,DTS对FLOAT的迁移精度为38位,对DOUBLE的迁移精度为308位,请确认迁移精度是否符合业务预期。
  • 如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败。
  • 当选择增量迁移时,源端的 MySQL 实例需要按照要求开启 binlog。
  • 当选择增量迁移时,源库的 binlog_format 要为 row。
  • 当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full。
说明 参数的修改可以在数据库管理 > 参数设置里进行修改。

注意事项

  • DTS在执行全量数据迁移时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据迁移前评估源库和目标库的性能,同时建议您在业务低峰期执行数据迁移(例如源库和目标库的CPU负载在30%以下)。
  • 如果源库中待迁移的表没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标数据库中出现重复数据。
  • 对于七天之内的异常任务,DTS会尝试自动恢复,可能会导致迁移任务的源端数据库数据覆盖目标实例数据库中写入的业务数据,迁移任务结束后务必将DTS访问目标实例账号的写权限revoke命令回收掉。

操作步骤

  1. 登录腾讯云MySQL数据库实例,查看详情页面的外网地址,包括域名端口
    说明 若未开启外网地址,请单击开启并在弹出的对话框中单击确定
  2. 登录DTS控制台
  3. 在左侧菜单栏单击数据迁移,单击右上角创建迁移任务
  4. 填写源库和目标库信息,具体参数配置说明如下:
    库类别 参数 说明
    源库 实例类型 源库实例类型,这里选择有公网IP的自建数据库
    实例地区 如果您的实例进行了访问限制,请先放开对应地区公网IP段的访问权限后,再配置数据迁移任务。
    说明 可以单击右侧获取DTS IP段查看、复制对应地区的IP段。
    数据库类型 源数据库类型,这里选择MySQL
    主机名或IP地址 腾讯云数据库的外网地址域名部分。
    端口 腾讯云数据库的外网地址端口部分。
    数据库账号 腾讯云数据库的默认高权限账号:root
    数据库密码 腾讯云数据库root账号的密码。
    目标库 实例类型 目标实例的类型,这里选RDS实例
    实例地区 目标实例的地区。
    RDS实例ID 对应地区下的实例ID,这里选择想要迁移到的目标实例的ID。
    数据库账号 目标实例的拥有读写权限的账号。
    数据库密码 目标实例的对应账号的密码。
    连接方式 非加密传输SSL安全连接两种连接方式,选择SSL安全加密连接会显著增加CPU消耗。
  5. 填写完毕后单击测试连接,确定源库和目标库都测试通过
  6. 单击授权白名单并进入下一步
  7. 选择迁移对象及迁移类型。
    说明 为保证迁移数据的一致性,建议选择结构迁移+全量数据迁移+增量数据迁移。
    配置 说明
    迁移类型
    • 如果只需要进行全量迁移,则同时勾选结构迁移全量数据迁移
    • 如果需要进行不停机迁移,则同时勾选结构迁移全量数据迁移增量数据迁移
    说明 如果没有勾选增量数据迁移,为保障数据一致性,数据迁移期间请勿在源库中写入新的数据。
    映射名称更改 如需更改迁移对象在目标实例中的名称,请使用对象名映射功能,详情请参见库表列映射
    源、目标库无法连接重试时间 默认重试12小时,您也可以自定义重试时间。如果DTS在设置的时间内重新连接上源、目标库,迁移任务将自动恢复。否则,迁移任务将失败。
    说明 由于连接重试期间,DTS将收取任务运行费用,建议您根据业务需要自定义重试时间,或者在源和目标库实例释放后尽快释放DTS实例。
    源表DMS_ONLINE_DDL过程中是否复制临时表到目标库 如源库使用数据管理DMS(Data Management Service)执行Online DDL变更,您可以选择是否迁移Online DDL变更产生的临时表数据。
    • :迁移Online DDL变更产生的临时表数据。
      说明 Online DDL变更产生的临时表数据过大,可能会导致迁移任务延迟。
    • :不迁移Online DDL变更产生的临时表数据,只迁移源库的原始DDL数据。
      说明 该方案会导致目标库锁表。
  8. 上述配置完成后,单击页面右下角的预检查并启动
    说明
    • 在迁移任务正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动迁移任务。
    • 如果预检查失败,单击具体检查项后的提示,查看失败详情。
      • 您可以根据提示修复后重新进行预检查。
      • 如无需修复告警检测项,您也可以选择确认屏蔽忽略告警项并重新进行预检查,跳过告警检测项重新进行预检查。
  9. 单击下一步,在购买配置确认对话框中,勾选《数据传输(按量付费)服务条款》并单击立即购买并启动
    说明 结构迁移和全量迁移任务暂不收费,增量迁移根据链路规格按小时收费。
  10. 等待迁移任务完成即可。