数据传输服务(Data Transmission Service,简称DTS)是阿里云提供的支持RDBMS、NoSQL、OLAP等多种数据源之间数据交互的数据服务。本文以MySQL数据库为例,介绍如何配置DTS迁移任务,实现从本地自建数据库到ECS实例自建数据库间的数据迁移。

前提条件

  • 创建ECS实例。具体操作步骤,请参见使用向导创建实例
  • 在ECS实例的安全组中放行MySQL监听的端口号。MySQL监听的默认端口号为3306。
  • 在ECS实例上安装MySQL数据库。
  • 为ECS实例上的MySQL数据库创建非root账号。

    例如,您可以运行以下命令为MySQL数据库创建名为dts、密码为123456的账号。

    grant all on *.*  to 'dts'@'%'  IDENTIFIED BY '123456';
  • 为本地MySQL数据库创建非root账号。

背景信息

DTS提供的数据迁移功能能够支持同异构数据源之间的数据迁移,同时提供了库表列三级映射、数据过滤多种ETL特性。您可以使用DTS进行零停机迁移,在迁移过程中,源数据库正常持续提供服务,最大程度降低迁移对业务的影响。DTS支持的数据库类型请参见数据迁移

操作步骤

  1. 登录数据传输DTS控制台
  2. 在左侧导航栏,选择数据迁移
  3. 选择ECS实例所在地域,并单击创建迁移任务


  4. 配置迁移任务。
    1. 配置任务名称。

      您可以使用默认的名称或者自定义名称。

    2. 配置源库信息。

      DTS支持通过公网、VPN网关、专线及智能网关访问的自建数据库。本文以公网自建数据库为例介绍配置信息。其他类型数据库的迁移方案请参考DTS用户手册。

      参数名称 参数值
      实例类型 有公网IP的自建数据库。
      实例地区 本地数据库所在的地域。
      数据库类型 本地数据库的类型。本示例中,数据库类型为MySQL。
      主机名或IP地址 本地数据库所在主机的主机名或IP地址。
      端口 MySQL数据库监听的端口号。
      数据库账号 本地MySQL数据库的非root访问账号。
      说明 数据库账号必须填写非root账号,否则测试连接时会报错。
      数据库密码 非root账号对应的密码。
    3. 单击源库信息右下角的测试连接

      当返回的结果为测试通过时,表示源库连接正常。

    4. 配置目标库信息。
      参数名称 参数值
      实例类型 ECS上的自建数据库。
      实例地区 ECS实例所在地域。
      ECS实例ID ECS实例的实例ID。DTS 支持经典网络及专有网络的ECS实例。
      数据库类型 与本地自建数据库的类型相同。本示例中,数据库类型为MySQL。
      端口 MySQL数据库监听的端口号。
      数据库账号 ECS实例上MySQL数据库的非root账号。
      说明 数据库账号必须填写非root账号,否则测试连接时会报错。
      数据库密码 非root账号对应的密码。
    5. 单击目标库信息右下角的测试连接

      当返回的结果为测试通过时,表示目标库连接正常。

    6. 单击授权白名单并进入下一步
  5. 配置迁移类型及迁移对象。
    1. 配置迁移类型。
      • 业务零停机迁移,请选择:结构迁移+全量数据迁移+增量数据迁移。
      • 全量迁移,请选择:结构迁移+全量数据迁移。
    2. 配置迁移对象。

      迁移对象框中单击要迁移的数据库对象,如数据库、表或列,然后单击>添加到已选择对象框中。

      说明 默认情况下,数据库对象迁移到ECS自建MySQL实例后,对象名跟本地MySQL实例一致。如果迁移的数据库对象在源实例跟目标实例上名称不同,您需要使用DTS提供的对象名映射功能,详细信息请参考库表列映射
  6. 单击预检查并启动
    在迁移任务正式启动之前,会预检查连通性、权限及日志格式等。下图表示预检查成功通过。

    预检查通过后,您可以在迁移任务列表中查看迁移任务的迁移状态及进度。