ECS实例自建数据库间迁移

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

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

背景信息

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

实现ECS实例上自建数据库间的数据迁移,其示意图如下所示。

image

前提条件

  • 在目标ECS实例的安全组中放行MySQL监听的端口(默认端口号为3306)。具体操作,请参见添加安全组规则

  • 分别为源ECS实例和目标ECS实例上的MySQL数据库创建非root账号,例如迁移账号dts。

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

    # 第一步:创建用户并设置密码
    CREATE USER 'dts'@'%' IDENTIFIED BY 'Test@123456';
    
    # 第二步:授予权限
    GRANT ALL PRIVILEGES ON *.* TO 'dts'@'%';
    
    # 第三步:刷新权限
    FLUSH PRIVILEGES;

注意事项

使用数据传输服务DTS迁移自建数据库,DTS对于不同数据库版本支持程度不同,部分数据库版本存在限制。请参考DTS迁移方案概览获取支持的版本情况和最佳方案。

操作步骤

  1. 登录数据传输DTS控制台

  2. 在左侧导航栏,单击数据迁移

  3. 选择ECS实例所在地域,并单击创建任务

  4. 配置源数据库和目标数据库信息。

    1. 配置任务名称。

      DTS会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。您可以使用默认的名称或自定义名称。

    2. 配置源库信息。

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

      参数名称

      参数值

      数据库类型

      ECS实例上自建数据库的类型。本示例中,数据库类型为MySQL

      接入方式

      根据源库的部署位置进行选择,本示例中选择有公网IPECS自建数据库

      实例地区

      ECS实例上自建数据库所在的地域。本示例中,地域选择华东1(杭州)

      是否跨阿里云账号

      支持对不同阿里云账号下的实例配置数据迁移或同步,实现跨阿里云账号的数据迁移或同步。本示例选择不跨账号

      ECS实例ID

      选择所需同步的数据实例。

      端口

      MySQL数据库监听的端口号(默认为3306)。

      数据库账号

      ECS实例上MySQL数据库的非root访问账号。 例如迁移账号dts

      重要

      数据库账号必须填写非root账号,否则测试连接时会报错。

      数据库密码

      账号对应的密码。

    3. 配置目标库信息。

      参数名称

      参数值

      数据库类型

      与源ECS实例上的自建数据库类型相同。本示例中,数据库类型为MySQL

      接入方式

      选择有公网IPECS自建数据库

      实例地区

      目标ECS实例所在地域。本示例中,地域选择华北2(北京)

      ECS实例ID

      目标ECS实例的实例ID。DTS支持经典网络和专有网络的ECS实例。

      端口

      MySQL数据库监听的端口号(默认为3306)。

      数据库账号

      目标ECS实例上MySQL数据库的非root账号。 例如迁移账号dts

      说明

      数据库账号必须填写非root账号,否则测试连接时会报错。

      数据库密码

      账号对应的密码。

    4. 配置完成后,单击页面下方的测试连接以进行下一步

    5. 如果您的自建数据库具备白名单安全设置,您需要复制弹跳框中的DTS服务器IP地址,并加入自建数据库的白名单安全设置中。然后单击测试连接

      警告

      DTS自动添加或您手动添加DTS服务的公网IP地址段可能会存在安全风险,一旦使用本产品代表您已理解和确认其中可能存在的安全风险,并且需要您做好基本的安全防护,包括但不限于加强账号密码强度防范、限制各网段开放的端口号、内部各API使用鉴权方式通信、定期检查并限制不需要的网段,或者通过内网(专线/VPN网关/智能网关)的方式接入。

  5. 配置迁移类型、迁移对象、触发器迁移方式等参数。

    1. 配置迁移类型。

      • 业务不停止且持续有数据写入数据库时:请同时选择库表结构迁移全量迁移增量迁移

        说明

        如果没有选择增量数据迁移,为保障数据一致性,数据迁移期间,请勿在源库中写入新的数据。

      • 业务已停止或者没有数据写入数据库时:请同时选择库表结构迁移全量迁移

    2. 配置迁移对象。

      源库对象框中单击要迁移的数据库对象(例如数据库、表或列),然后单击2023-09-08_17-04-13.png图标,添加要迁移的数据库对象到已选择对象框中。

      说明

      默认情况下,数据库对象迁移到ECS自建MySQL实例后,对象名和源MySQL实例一致。如果迁移的数据库对象在源实例和目标实例上名称不同,您需要使用DTS提供的对象名映射功能。更多信息,请参见库表列映射

  6. 按照向导,完成其他配置,预检查通过,购买并付费后,即可启动迁移。

    在迁移任务正式启动之前,会预先检查连通性、权限及日志格式等。下图表示预检查成功通过。image

    您可以在迁移任务页面的列表中查看迁移任务的迁移状态和进度。image