MySQL为源:数据同步操作指南

更新时间:
复制为 MD 格式

本文档将引导您完成使用阿里云数据传输服务(DTS)从MySQL数据库同步数据的全过程,整个过程可以归纳为七大核心步骤。

步骤一:准备工作

在配置同步任务前,请完成以下准备工作,确保任务顺利执行。

  1. (可选)接入阿里云:请您先确保业务环境可接入阿里云,若阿里云实例或您的环境支持公网访问请忽略。

  2. 访问授权

  3. 网络与安全设置:确保DTS服务器有权限访问源数据库和目标数据库,请参考添加DTS服务器IP地址白名单获取目标地域的完整IP列表。

  4. 源库与目标库:请参见MySQL为源:数据同步使用限制完成源库与目标库相关配置以及查看相关使用限制。

步骤二:创建并配置同步任务

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

  2. 在左侧导航栏,单击数据同步。在页面左上角,选择同步实例所属地域。

  3. 单击创建任务,进入任务配置页面。

    1. 任务名称:DTS会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。

    2. 配置源库和目标库信息:

      源库信息

      不同的接入方式配置项有所不同,您可以根据实际业务需求进行选择。

      云实例

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      选择MySQL

      接入方式

      选择云实例

      实例地区

      选择源RDS MySQL实例所属地域。

      是否跨阿里云账号

      -

      根据您的需求,是否跨阿里云账号。选择跨账号需配置跨阿里云账号跨阿里云账号角色名

      跨阿里云账号

      填写阿里云账号ID(数字ID)

      跨阿里云账号角色名

      填写相关RAM名称。

      RDS实例ID

      选择源RDS MySQL实例ID。

      数据库账号

      填入源RDS MySQL实例的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接

      专线/VPN网关/智能网关

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      选择MySQL

      接入方式

      选择专线/VPN网关/智能网关

      实例地区

      选择源数据库联通的VPC所属地域。

      是否跨阿里云账号

      -

      根据您的需求,是否跨阿里云账号。选择跨账号需配置跨阿里云账号跨阿里云账号角色名

      跨阿里云账号

      填写阿里云账号ID(数字ID)

      跨阿里云账号角色名

      填写相关RAM名称。

      已和源端数据库联通的VPC

      选择与源数据库联通的VPC网络。

      域名或IP地址

      填写源数据库的连接地址。

      端口

      填写源数据库的端口。

      数据库账号

      填入源数据库的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接。若源数据库已开启SSL安全连接您还需要上传CA 证书并填写CA 密钥

      VPC数据通道主备交换机

      选择DTS使用交换机(主)交换机(备)VPC数据通道来访问您的数据源。

      公网IP

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      选择MySQL

      接入方式

      选择公网IP

      实例地区

      选择源数据库就近的地域。

      域名或IP地址

      填写源数据库的连接地址。

      端口

      填写源数据库的端口。

      数据库账号

      填入源数据库的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接。若源数据库已开启SSL安全连接您还需要上传CA 证书并填写CA 密钥

      ECS自建数据库

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      选择MySQL

      接入方式

      选择ECS自建数据库

      实例地区

      选择ECS实例所属地域。

      是否跨阿里云账号

      -

      根据您的需求,是否跨阿里云账号。选择跨账号需配置跨阿里云账号跨阿里云账号角色名

      跨阿里云账号

      填写阿里云账号ID(数字ID)

      跨阿里云账号角色名

      填写相关RAM名称。

      ECS实例ID

      选择ECS实例ID。

      端口

      填写ECS实例中自建MySQL数据库的端口。

      数据库账号

      填入源数据库的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接。若源数据库已开启SSL安全连接您还需要上传CA 证书并填写CA 密钥

      云企业网CEN

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      选择MySQL

      接入方式

      选择云企业网CEN

      实例地区

      选择源数据库所属地域。

      是否跨阿里云账号

      -

      根据您的需求,是否跨阿里云账号。选择跨账号需配置跨阿里云账号跨阿里云账号角色名

      跨阿里云账号

      填写阿里云账号ID(数字ID)

      跨阿里云账号角色名

      填写相关RAM名称。

      云企业网实例ID

      选择云企业网实例ID。

      已和数据库联通的VPC网络

      选择云企业网实例中与源数据库联通的VPC网络。

      域名或IP地址

      填写源数据库的连接地址。

      端口

      填写源数据库的端口。

      数据库账号

      填入源数据库的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接。若源数据库已开启SSL安全连接您还需要上传CA 证书并填写CA 密钥

      数据库网关DG

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      选择MySQL

      接入方式

      选择数据库网关DG

      实例地区

      选择数据库网关所属地域。

      数据库网关ID

      选择数据库网关ID。

      数据库地址

      选择数据库网关下的数据库地址。

      数据库账号

      填入源数据库的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接。若源数据库已开启SSL安全连接您还需要上传CA 证书并填写CA 密钥

      目标库信息

      不同的源库的接入方式,目标库的接入方式有所不同,请以控制台为准。以下为您列出不同接入方式所需配置的参数。

      说明

      暂不支持以公网IP的方式接入目标库,若您的有相关需求,请选择数据迁移任务。

      云实例

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      请根据您的需求自行选择,此处以MySQL为例。

      接入方式

      选择云实例

      实例地区

      选择目标数据库所属地域。

      是否跨阿里云账号

      -

      根据您的需求,是否跨阿里云账号。选择跨账号需配置跨阿里云账号跨阿里云账号角色名

      跨阿里云账号

      填写阿里云账号ID(数字ID)

      跨阿里云账号角色名

      填写相关RAM名称。

      RDS实例ID

      选择目标RDS MySQL实例ID。 选择其他数据库类型时,请选择对应类型的实例ID。

      数据库账号

      填入目标RDS MySQL实例的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接

      专线/VPN网关/智能网关

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      请根据您的需求自行选择,此处以MySQL为例。

      接入方式

      选择专线/VPN网关/智能网关

      实例地区

      选择目标数据库联通的VPC所属地域。

      已和源端数据库联通的VPC

      选择与目标数据库联通的VPC网络。

      域名或IP地址

      填写目标数据库的连接地址。

      端口

      填写目标数据库的端口。

      数据库账号

      填入目标数据库的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接。若目标数据库已开启SSL安全连接您还需要上传CA 证书并填写CA 密钥

      VPC数据通道主备交换机

      选择DTS使用交换机(主)交换机(备)VPC数据通道来访问您的数据源。

      ECS自建数据库

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      请根据您的需求自行选择,此处以MySQL为例。

      接入方式

      选择ECS自建数据库

      实例地区

      选择ECS实例所属地域。

      ECS实例ID

      选择ECS实例ID。

      端口

      填写ECS实例中自建MySQL数据库的端口。

      数据库账号

      填入自建MySQL数据库的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接。若目标数据库已开启SSL安全连接您还需要上传CA 证书并填写CA 密钥

      云企业网CEN

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      请根据您的需求自行选择,此处以MySQL为例。

      接入方式

      选择云企业网CEN

      实例地区

      选择目标数据库所属地域。

      云企业网实例ID

      选择云企业网实例ID。

      已和数据库联通的VPC网络

      选择云企业网实例中与目标数据库联通的VPC网络。

      域名或IP地址

      填写目标数据库的连接地址。

      端口

      填写目标数据库的端口。

      数据库账号

      填入目标数据库的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接。若目标数据库已开启SSL安全连接您还需要上传CA 证书并填写CA 密钥

      数据库网关DG

      配置

      说明

      示例图片

      选择已有连接信息

      • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

        说明

        若您在DMS控制台,则配置项为选择DMS数据库实例

      • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

      image

      数据库类型

      请根据您的需求自行选择,此处以MySQL为例。

      接入方式

      选择数据库网关DG

      实例地区

      选择数据库网关所属地域。

      数据库网关ID

      选择数据库网关ID。

      数据库地址

      选择数据库网关下的数据库地址。

      数据库账号

      填入目标数据库实例的账号。

      数据库密码

      填入该数据库账号对应的密码。

      连接方式

      请根据实际情况选择非加密连接SSL安全连接。若目标数据库已开启SSL安全连接您还需要上传CA 证书并填写CA 密钥

  4. 配置完成后,单击测试连接以进行下一步。验证DTS是否能成功连接到源库和目标库。若弹出DTS服务器访问授权对话框,请将对话框中的IP地址填写至对应源端或目标端数据库的安全设置中。确认无误后,单击确认授权并测试链接若无异常则自动跳转配置任务对象。

步骤三:配置同步对象与高级选项

  1. 对象配置页面,选择同步类型和同步对象等配置。不同的目标数据库类型配置项有所不同,请您选择对应的目标数据库类型进行查看。

    MySQL

    配置

    说明

    示例图片

    同步类型

    固定选中增量同步。默认情况下,您还需要同时选中库表结构同步全量同步。预检查完成后,DTS会将源实例中待同步对象的全量数据在目标集群中初始化,作为后续增量同步数据的基线数据。

    image

    image

    源库触发器迁移方式

    请根据实际情况选择同步触发器的方式,若您待同步的对象不涉及触发器,则无需配置。更多信息,请参见配置同步或迁移触发器的方式

    说明

    仅当同步类型选择了库表结构同步时才可以配置。

    开启迁移评估

    评估源库和目标库的结构(如索引长度、存储过程、依赖的表等)是否满足要求,您可以根据实际情况选择或者

    说明
    • 仅当同步类型选择了库表结构同步时才可以配置。

    • 若选择,则可能会增加预检查时间。您可以在预检查阶段查看评估结果,评估结果不影响预检查结果。

    同步拓扑

    根据您的业务需求,可选择单向同步双向同步双向同步仅部分特定源端与目标端支持,详细信息,请参见数据同步拓扑介绍

    是否开启Exactly-Once写入

    若待同步的对象中包含不具备主键和唯一约束的表,请选择。更多信息,请参见同步无主键和唯一约束的表

    说明

    仅当同步拓扑选择了双向同步时才可以配置。

    是否过滤DDL

    • 选择为:不同步DDL操作。

    • 选择为:同步DDL操作。

    说明
    • 仅当同步拓扑选择了双向同步时才可以配置。

    • 为保障双向同步链路的稳定性,仅正向任务(即源库同步至目标库)支持选择是否同步DDL,反向任务(即目标库同步至源库)将自动过滤DDL操作。

    全局冲突修复策略

    如遇到相关冲突,根据业务需要,您可选择合适的冲突修复策略。

    单击展开查看支持的冲突检测

    为保障同步数据的一致性,您需要确保同一个主键、业务主键或唯一键的记录只在双向同步的一个节点进行更新。如果同时更新则会按照您在数据同步作业中配置的冲突修复策略进行响应。

    DTS通过冲突检测和修复最大程度地维护双向同步实例的稳定性。目前DTS支持进行检测的冲突类型包括:

    • INSERT导致的唯一性冲突

      同步INSERT语句时违背了唯一性约束,例如双向同步的两个节点同时或者在极为接近的时间INSERT某个主键值相同的记录,那么同步到对端时,会因为已经存在相同主键值的记录,导致INSERT同步失败。

    • UPDATE更新的记录不完全匹配

      • UPDATE要更新的记录在同步目标实例中不存在时,DTS会自动转化为INSERT,此时可能会出现唯一键的唯一性冲突。

      • UPDATE要更新的记录出现主键或唯一键冲突。

    • DELETE对应的记录不存在

      DELETE要删除的记录在同步的目标实例中不存在。出现这种冲突时,不论配置何种冲突修复策略,DTS都会自动忽略DELETE操作。

    重要
    • 由于数据同步两端的系统时间可能存在差异、同步存在延时等多种因素,DTS无法完全保证冲突检测机制能够完全防止数据的冲突。在使用双向同步时,您需要在业务层面配合进行相应的改造,保证同一个主键、业务主键或唯一键的记录只在双向同步的某个节点进行更新。

    • 对于上述数据同步的冲突,DTS提供了修复策略,您可以在配置双向同步时选择。

    • Overwrite(遇到冲突,直接覆盖目标实例中的冲突记录):当数据同步遇到冲突时,直接覆盖目标库中的冲突记录。

    • TaskFailed(遇到冲突,任务报错退出):当数据同步遇到冲突时,同步任务直接报错并退出,同步任务进入失败状态,需要您介入修复任务。

    • Ignore(遇到冲突,直接使用目标实例中的冲突记录):当数据同步遇到冲突时,直接跳过当前同步语句,继续往下执行,选择使用目标库中的冲突记录。

    说明
    • 仅当同步拓扑选择了双向同步时才可以配置。

    • 如果同步任务暂停或者重启后存在延迟,在延迟期间,这些策略均不生效,默认覆盖目标端数据。

    目标已存在表的处理模式

    • 预检查并报错拦截:检查目标数据库中是否有同名的表。如果目标数据库中没有同名的表,则通过该检查项目;如果目标数据库中有同名的表,则在预检查阶段提示错误,数据同步任务不会被启动。

      说明

      如果目标库中同名的表不方便删除或重命名,您可以更改该表在目标库中的名称,请参见库表列名映射

    • 忽略报错并继续执行:跳过目标数据库中是否有同名表的检查项。

      警告

      选择为忽略报错并继续执行,可能导致数据不一致,给业务带来风险,例如:

      • 表结构一致的情况下,如在目标库遇到与源库主键或唯一键的值相同的记录:

        • 全量期间,DTS会保留目标集群中的该条记录,即源库中的该条记录不会同步至目标数据库中。

        • 增量期间,DTS不会保留目标集群中的该条记录,即源库中的该条记录会覆盖至目标数据库中。

      • 表结构不一致的情况下,可能会导致无法初始化数据、只能同步部分列的数据或同步失败,请谨慎操作。

    是否迁移 Event

    请根据实际情况选择是否同步源库中的事件(Event)。若您选择,则还需遵循相关要求并进行后续操作。更多信息,请参见同步或迁移事件

    目标库对象名称大小写策略

    您可以配置目标实例中同步对象的库名、表名和列名的英文大小写策略。默认情况下选择DTS默认策略,您也可以选择与和源库保持一致和目标库默认策略保持一致。更多信息,请参见目标库对象名称大小写策略

    源库对象

    源库对象框中单击待同步对象,然后单击向右将其移动至已选择对象框。

    说明

    同步对象选择的粒度为库、表、列。若选择的同步对象为表或列,其他对象(如视图、触发器、存储过程)不会被同步至目标库。

    已选择对象

    • 如需更改单个同步对象在目标实例中的名称,请右击已选择对象中的同步对象,设置方式,请参见库表列名单个映射

    • 如需批量更改同步对象在目标实例中的名称,请单击已选择对象方框右上方的批量编辑,设置方式,请参见库表列名批量映射

    说明
    • 如果使用了对象名映射功能,可能会导致依赖这个对象的其他对象同步失败。

    • 如需按库或表级别选择同步的SQL操作,请在已选择对象中右击待同步对象,并在弹出的对话框中选择所需同步的SQL操作。

    • 如需设置WHERE条件过滤数据,请在已选择对象中右击待同步的表,在弹出的对话框中设置过滤条件。设置方法请参见设置过滤条件

    Kafka

    配置

    说明

    示例图片

    同步类型

    固定选中增量同步。默认情况下,您还需要同时选中库表结构同步全量同步。预检查完成后,DTS会将源实例中待同步对象的全量数据在目标集群中初始化,作为后续增量同步数据的基线数据。

    说明

    目标Kafka实例的接入方式云实例时,不支持库表结构同步

    image

    image

    目标已存在表的处理模式

    • 预检查并报错拦截:检查目标数据库中是否有同名的表。如果目标数据库中没有同名的表,则通过该检查项目;如果目标数据库中有同名的表,则在预检查阶段提示错误,数据同步任务不会被启动。

      说明

      如果目标库中同名的表不方便删除或重命名,您可以更改该表在目标库中的名称,请参见库表列名映射

    • 忽略报错并继续执行:跳过目标数据库中是否有同名表的检查项。

      警告

      选择为忽略报错并继续执行,可能导致数据不一致,给业务带来风险,例如:

      • 表结构一致的情况下,如在目标库遇到与源库主键或唯一键的值相同的记录:

        • 全量期间,DTS会保留目标集群中的该条记录,即源库中的该条记录不会同步至目标数据库中。

        • 增量期间,DTS不会保留目标集群中的该条记录,即源库中的该条记录会覆盖至目标数据库中。

      • 表结构不一致的情况下,可能会导致无法初始化数据、只能同步部分列的数据或同步失败,请谨慎操作。

    投递到Kafka的数据格式

    根据需求选择同步到Kafka实例中的数据存储格式。

    同步所有字段

    选择是否需要同步所有字段。

    Kafka压缩格式

    根据需求选择Kafka压缩消息的压缩格式。

    • LZ4(默认):压缩率较低,压缩速率较高。

    • GZip:压缩率较高,压缩速率较低。此方式对CPU的消耗较高。

    • Snappy:压缩率中等,压缩速率中等。

    投递到Kafka Partition策略

    根据业务需求选择策略

    消息确认机制

    根据业务需求选择消息确认机制

    存储DDLTopic

    在下拉框中选择用于存储DDL信息的Topic。

    说明

    若未选择,DDL信息默认存储在接收数据的Topic中。

    目标库对象名称大小写策略

    您可以配置目标实例中同步对象的库名、表名和列名的英文大小写策略。默认情况下选择DTS默认策略,您也可以选择与和源库保持一致和目标库默认策略保持一致。更多信息,请参见目标库对象名称大小写策略

    源库对象

    源库对象框中单击待同步对象,然后单击向右将其移动至已选择对象框。

    说明

    同步对象选择的粒度为库、表、列。若选择的同步对象为表或列,其他对象(如视图、触发器、存储过程)不会被同步至目标库。

    已选择对象

    本示例无需额外配置。您可以使用映射功能,设置源表在目标Kafka实例中的Topic名称、勾选所需同步的DML&DDL操作或列名等信息。

    说明
    • 如需按库或表级别选择同步的SQL操作,请在已选择对象中右击待同步对象,并在弹出的对话框中选择所需同步的SQL操作。

    • 如果使用了对象名映射功能,可能会导致依赖这个对象的其他对象同步失败。

    AnalyticDB MySQL 3.0

    配置

    说明

    示例图片

    同步类型

    固定选中增量同步。默认情况下,您还需要同时选中库表结构同步全量同步。预检查完成后,DTS会将源实例中待同步对象的全量数据在目标集群中初始化,作为后续增量同步数据的基线数据。

    说明

    若选中了全量同步,则执行了CREATE TABLE语句的待同步表(表结构和表数据)支持同步至目标库。

    image

    image

    实例级别选择所需同步的DDLDML

    按实例级别选择所需同步的DML&DDL操作,默认全部选择。

    说明

    如需按库或表级别选择同步的SQL操作,请在已选择对象中右击同步对象,在弹跳框中勾选所需同步的SQL操作。

    多表归并

    是否需要将源库中多个表结构相同的表(即各分表)同步至目标库的同一个表中。

    • :通常在OLTP场景中,为提高业务表响应速度,通常会做分库分表处理。而在OLAP场景(如该目标库)中单个数据表可存储海量数据,使用单表查询更加便捷。此类场景中,您可以借助DTS的多表归并功能将源库中多个表结构相同的表(即各分表)同步至目标库中的同一个表中。 具体操作,请参见开启多表归并

      说明
      • 选择源库的多个表后,您需要通过对象名映射功能,将其改为目标库中的同一个表名。关于对象名映射功能的介绍,请参见库表列名映射

      • DTS会在目标库的同步目标表中增加__dts_data_source列(类型为text)来存储数据来源,并且将以DTS实例ID:数据库名称:schema名称:表名的格式写入列值用于区分表的来源,例如dts********:dtstestdata:testschema:customer1

      • 多表归并功能基于任务级别,即不支持基于表级别执行多表归并。如果需要让部分表执行多表归并,另一部分不执行多表归并,您需要创建两个数据同步任务。

      警告

      源库请勿执行库或表结构变更的DDL操作,否则会导致数据不一致或者同步任务失败。

    • :默认选项。

    目标已存在表的处理模式

    • 预检查并报错拦截:检查目标数据库中是否有同名的表。如果目标数据库中没有同名的表,则通过该检查项目;如果目标数据库中有同名的表,则在预检查阶段提示错误,数据同步任务不会被启动。

      说明

      如果目标库中同名的表不方便删除或重命名,您可以更改该表在目标库中的名称,请参见库表列名映射

    • 忽略报错并继续执行:跳过目标数据库中是否有同名表的检查项。

      警告

      选择为忽略报错并继续执行,可能导致数据不一致,给业务带来风险,例如:

      • 表结构一致的情况下,如在目标库遇到与源库主键或唯一键的值相同的记录:

        • 全量期间,DTS会保留目标集群中的该条记录,即源库中的该条记录不会同步至目标数据库中。

        • 增量期间,DTS不会保留目标集群中的该条记录,即源库中的该条记录会覆盖至目标数据库中。

      • 表结构不一致的情况下,可能会导致无法初始化数据、只能同步部分列的数据或同步失败,请谨慎操作。

    目标库对象名称大小写策略

    您可以配置目标实例中同步对象的库名、表名和列名的英文大小写策略。默认情况下选择DTS默认策略,您也可以选择与和源库保持一致和目标库默认策略保持一致。更多信息,请参见目标库对象名称大小写策略

    源库对象

    源库对象框中单击待同步对象,然后单击向右将其移动至已选择对象框。

    说明
    • 同步对象选择的粒度为库、表、列。若选择的同步对象为表或列,其他对象(如视图、触发器、存储过程)不会被同步至目标库。

    • 若选择的同步对象为整库,默认情况如下:

      • 源库中待同步的表有主键(包含主键为单列和多列),则以该主键列为分布键。

      • 源库中待同步的表无主键,则自动生成一个自增主键列,可能会导致源库和目标库数据不一致。

    已选择对象

    • 如需更改单个同步对象在目标实例中的名称,请右击已选择对象中的同步对象,设置方式,请参见库表列名单个映射

    • 如需批量更改同步对象在目标实例中的名称,请单击已选择对象方框右上方的批量编辑,设置方式,请参见库表列名批量映射

    说明
    • 如需按库或表级别选择同步的SQL操作,请在已选择对象中右击待同步对象,并在弹出的对话框中选择所需同步的SQL操作。

    • 如需设置WHERE条件过滤数据,请在已选择对象中右击待同步的表,在弹出的对话框中设置过滤条件。设置方法请参见设置过滤条件

  2. 单击下一步高级配置。通常保持默认配置即可。

    单击展开查看详细配置说明

    说明

    在不同的目标数据库类型配置项有所不同,请以控制台显示为准。

    配置

    说明

    示例图片

    选择调度该任务的专属集群

    DTS默认将任务调度到共享集群上,您无需选择。若您希望任务更加稳定,可以购买专属集群来运行DTS同步任务。更多信息,请参见什么是DTS专属集群

    image

    复制源表Online DDL工具执行过程的临时表到目标库

    若源库使用数据管理DMS(Data Management)gh-ost执行Online DDL变更,您可以选择是否同步Online DDL变更产生的临时表数据。

    重要
    • DTS任务暂不支持使用pt-online-schema-change等类似工具执行Online DDL变更,否则会导致DTS任务失败。

    • 各阶段处理方式如下:由于库表结构同步全量同步阶段不允许执行库或表结构变更的DDL操作,因此不受Online DDL策略控制。

      • 库表结构同步:不受Online DDL策略控制,会创建相关临时表。

      • 全量同步:不受Online DDL策略控制,全量同步对象中将不包括临时表的同步,凡是表名满足下述正则表达式的表都会被过滤。

      • 增量同步:受Online DDL策略控制。

        • :会同步Online DDL操作产生的临时表(例如_表名_gho)的数据变更。

        • 否,适配DMS Online DDL否,适配gh-ost:根据正则表达式规则过滤掉gh-ost等工具产生的临时表(例如_表名_gho)的数据变更。

    • :同步Online DDL变更产生的临时表数据。

      说明
      • Online DDL变更产生的临时表数据过大,可能会导致同步任务延迟。

    • 否,适配DMS Online DDL:不同步Online DDL变更产生的临时表数据,只同步源库使用数据管理DMS(Data Management)执行的原始DDL语句。

      说明

      该方案会导致目标库锁表。

    • 否,适配gh-ost:不同步Online DDL变更产生的临时表数据,支持自定义过滤规则。DTS将根据正则表达式规则过滤掉gh-ost等工具产生的临时表(例如_表名_gho)的数据变更。您可以根据需要,修改用于匹配影子表和无用表的默认正则表达式:

      • 影子表:^_(.+)_(?:gho|new)$

      • 无用表:^_(.+)_(?:ghc|del|old)$

      说明

      该方案会导致目标库锁表。

    是否迁移账号

    请根据实际情况选择是否同步源库的账号信息。若您选择,您还需要选择待同步的账号并确认账号权限。更多信息,请参见迁移数据库账号

    源库、目标库无法连接后的重试时间

    在同步任务启动后,若源库或目标库连接失败则DTS会报错,并会立即进行持续的重试连接,默认持续重试时间为720分钟,您也可以在取值范围(10~1440分钟)内自定义重试时间,建议设置30分钟以上。如果DTS在设置的重试时间内重新连接上源库、目标库,同步任务将自动恢复。否则,同步任务将会失败。

    说明
    • 针对同源或者同目标的多个DTS实例,如DTS实例ADTS实例B,设置网络重试时间时A设置30分钟,B设置60分钟,则重试时间以低的30分钟为准。

    • 由于连接重试期间,DTS将收取任务运行费用,建议您根据业务需要自定义重试时间,或者在源和目标库实例释放后尽快释放DTS实例。

    源库、目标库出现其他问题后的重试时间

    在同步任务启动后,若源库或目标库出现非连接性的其他问题(如DDLDML执行异常),则DTS会报错并会立即进行持续的重试操作,默认持续重试时间为10分钟,您也可以在取值范围(1~1440分钟)内自定义重试时间,建议设置10分钟以上。如果DTS在设置的重试时间内相关操作执行成功,同步任务将自动恢复。否则,同步任务将会失败。

    重要

    源库、目标库出现其他问题后的重试时间的值需要小于源库、目标库无法连接后的重试时间的值。

    是否限制全量同步速率

    在全量同步阶段,DTS将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。您可以根据实际情况,选择是否对全量同步任务进行限速设置(设置每秒查询源库的速率QPS每秒全量迁移的行数RPS每秒全量迁移的数据量(MB)BPS),以缓解目标库的压力。

    说明

    是否限制增量同步速率

    您也可以根据实际情况,选择是否对增量同步任务进行限速设置(设置每秒增量同步的行数RPS每秒增量同步的数据量(MB)BPS),以缓解目标库的压力。

    是否去除正反向任务的心跳表 SQL

    根据业务需求选择是否在DTS实例运行时,在源库中写入心跳SQL信息。

    • :不在源库中写入心跳SQL信息,DTS实例可能会显示有延迟。

    • :在源库中写入心跳SQL信息,可能会影响源库的物理备份和克隆等功能。

    环境标签

    您可以根据实际情况,选择用于标识实例的环境标签。

    场景标签

    您可以根据实际情况,选择用于标识实例的环境标签。

    配置 ETL 功能

    选择是否配置ETL功能。关于ETL的更多信息,请参见什么是ETL

    敏感数据扫描与脱敏

    是否开启敏感数据扫描与脱敏功能,对传输的数据进行敏感信息识别和处理。详细信息,请参见敏感数据扫描与脱敏

    • 开启

    • 关闭

    监控告警

    是否设置告警,当同步失败或延迟超过阈值后,将通知告警联系人。

步骤四:(可选)配置数据校验

若目标数据库类型支持数据校验,则可单击下一步数据校验,进行数据校验任务配置。若不支持则将直接跳转至步骤五:预检查与购买

  1. 选择数据校验方式

    说明
    • 全量校验:对全量任务中需要校验的数据进行校验。若实例不包含增量任务,则实例创建成功后且全量数据写入完成时开始校验;若实例包含增量任务,则实例创建成功且增量数据写入首次无延迟时开始校验。

    • 增量校验:对增量任务的数据进行校验,实例创建成功后且增量数据写入首次无延迟时开始校验。

    • 结构校验:对需要校验的对象进行结构校验。若实例不包含增量任务,则实例创建成功后且库表结构和全量数据写入完成时开始校验;若实例包含增量任务,则实例创建成功后且增量数据写入首次无延迟时开始校验。

    全量校验

    若您勾选了全量校验,您还需要设置如下表所示参数。

    参数

    说明

    示例图片

    全量校验模式

    • 按行抽样进行全字段校验:配置抽样百分比,对抽中的数据进行全字段校验,取值为10~100的整数。

    • 按表行数进行校验:对全量任务数据的行数进行校验,不会对具体的数据内容进行校验。

    说明

    按表行数进行校验的全量校验模式不收费;按行抽样进行全字段校验的全量校验模式按实际校验数据量收费。

    image

    全量校验超时设置

    • 不设置:全量校验任务超时不会强制结束。

    • 设置:设置全量校验任务结束的延迟时间。在全量校验任务启动后开始计时,若校验任务未在指定时间完成则强制结束。取值为1~72的整数。

    全量校验基准

    • 默认:以源库和目标库的合集为基准,校验源库和目标库数据的一致性。

    • 源库:以源库为基准,校验目标库与源库数据的一致性(不校验目标库比源库多的数据)。

    • 目标库:以目标库为基准,校验源库与目标库数据的一致性(不校验源库比目标库多的数据)。

    全量校验每秒读取的最大数据行数 RPS

    全量数据校验会占用数据库一定的读取资源,您可以根据实际情况对全量校验任务进行限速设置(每秒读取的数据行数和数据量),以缓解数据库的压力。

    说明

    参数值为0时表示无限制,当全量校验每秒读取的最大数据行数 RPS全量校验每秒读取的最大数据量 MBps均为0时,表示不限速。

    全量校验每秒读取的最大数据量 MBps

    增量校验

    若您勾选了增量校验,您还需要设置如下表所示参数。

    参数

    说明

    示例图片

    增量校验基准

    您可以根据实际情况,筛选需要校验的DML操作。支持源端INSERT数据源端UPDATE数据源端DELETE数据

    image

  2. 设置校验对象默认配置全部,可移除右侧不需要校验的对象

  3. 配置校验告警:根据业务需求,选择配置如下表所示参数。

    说明

    您也可以在DTS实例运行后,设置或修改数据校验告警

    参数

    说明

    示例图片

    全量校验告警

    • 不设置:不设置告警。

    • 设置:设置告警,您还需要选择和配置告警规则。告警规则如下:

      • 当全量校验任务失败时触发告警。

      • 设置数据不一致的阈值,当全量校验任务不一致数据大于等于设置的阈值时触发告警。

    image

    增量校验告警

    • 不设置:不设置告警。

    • 设置:设置告警,您还需要选择和配置告警规则。告警规则如下:

      • 当增量校验任务失败时触发告警。

      • 设置数据不一致的周期数、统计周期和不一致数量阈值,当增量校验任务累计在设置的若干个周期,数据不一致记录量均大于等于设置的阈值时触发告警。

      • 设置数据延迟的周期数、统计周期和延迟时间阈值,当增量校验任务累计在设置的若干个周期,延迟均大于等于设置的阈值时触发告警。

    说明

    若您设置了校验告警,您还需要输入告警联系人的手机号码。当校验任务触发告警时,将以短信的形式通知告警联系人。

步骤五:预检查与购买

  1. 保存任务并进行预检查,DTS会检查源库和目标库的配置、权限、网络等是否满足同步要求。预检查通过后,单击下一步购买

    • 若您需要查看调用API接口配置该实例时的参数信息,请将鼠标光标移动至下一步保存任务并预检查按钮上,然后单击气泡中的预览OpenAPI参数

    • 若您无需查看或已完成查看API参数,请单击页面下方的下一步保存任务并预检查

    说明
    • 在同步作业正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动同步作业。

    • 如果预检查失败,请单击失败检查项后的查看详情,并根据提示修复后重新进行预检查。

    • 如果预检查产生警告:

      • 对于不可以忽略的检查项,请单击失败检查项后的查看详情,并根据提示修复后重新进行预检查。

      • 对于可以忽略无需修复的检查项,您可以依次单击点击确认告警详情确认屏蔽确定重新进行预检查,跳过告警检查项重新进行预检查。如果选择屏蔽告警检查项,可能会导致数据不一致等问题,给业务带来风险。

    image

  2. 在购买页面,配置计费方式和链路规格等。

    • 计费方式:支持预付费后付费后付费 Serverless。详细信息,请参见计费方式

    • 链路规格:决定了增量同步的性能上限(RPS)。可根据源库的数据变更频繁程度选择,例如smallmedium等。详细信息,请参见规格说明

    • 配置完成后,阅读并勾选《数据传输(按量付费)服务条款》

    • 单击购买并启动,并在弹出的确认对话框,单击确定单击购买,任务将自动启动。

image

步骤六:(可选)配置反向同步任务

  1. 等待正向同步任务同步初始化完成,直至运行状态处于运行中

  2. 定位至反向同步任务,单击配置任务image

  3. 参考上述步骤,配置反向同步任务。

    重要
    • 配置反向同步任务时,您需要选择正确的源和目标实例。反向同步中源实例为正向同步中的目标实例,目标实例为正向同步中的源实例,并且您还需仔细确认实例信息(如数据库名称、账号、密码)的一致性。

    • 反向同步任务源和目标库的实例地区不支持修改,且需要配置的参数比正向同步任务少,请以控制台界面为准。

    • 反向同步任务的目标已存在表的处理模式配置不检测正向同步任务同步至目标实例中的表。

    • 反向同步任务不支持同步正向任务已选择对象中的对象。

    • 反向任务配置时不建议您使用映射功能,否则会存在数据不一致的风险。

  4. 预检查通过率显示为100%时,单击返回列表

步骤七:监控与验证

任务启动后,系统会根据您的任务配置会自动经历增量数据采集结构迁移全量同步增量写入全量校验等阶段。

  • 查看状态:在同步任务列表中,可以查看任务的当前阶段和运行状态。当状态进入增量同步且延迟稳定在秒级时,表示存量数据已同步完成,DTS正在实时同步增量数据。

  • 数据验证:在全量校验结构校验等数据校验页签的校验详情内查看数据一致性。

image