You need to enable JavaScript to run this app.
导航

配置正向同步

最近更新时间2023.11.02 14:15:38

首次发布时间2022.07.22 16:12:07

数据库传输服务 DTS 提供多种类型的数据库同步服务。本文介绍如何通过数据库传输服务 DTS 配置数据正向同步任务。

前提条件

在创建数据同步任务时直接保存的任务,且正向同步任务状态为待启动。同步任务的创建方法,请参见创建同步任务

操作步骤

  1. 登录 DTS 控制台

  2. 在顶部菜单栏的左上角,选择项目和地域。

  1. 在左侧导航栏,单击数据同步

  2. 在同步任务列表页找到目标任务,单击右上角的配置

  3. 配置源库及目标库页面,配置如下参数。

    1. 填写一下表格配置任务名称和链路规格。

      参数
      说明

      任务名称

      输入任务名称,必填。名称的命名规则:

      • 长度需在 64 个字符内。
      • 只能包含字母、数字、下划线(_)和中划线(-)。
      链路规格创建同步任务时已选择,不支持更改。关于链路规格的更多详情,请参见产品规格
    2. 填写如下源库信息。

      • 当源库的实例类型选择 MySQL 时,请配置相关参数信息,如下表所示:
      参数
      说明
      接入方式创建同步任务时已选择,不支持更改。
      地域选择源实例所属的地域。

      MySQL 实例

      从下拉列表中选择源实例。

      说明

      • 仅当接入方式为火山引擎版 MySQL火山引擎版 veDB MySQL 时,支持该配置。
      • 下拉列表中仅展示前 10 个实例信息,您可以通过实例 ID 或名称搜索目标实例。

      主机地址

      输入源自建实例的主机地址。

      说明

      仅当接入方式为火山引擎ECS自建实例(如火山引擎 ECS 自建 MySQL)或公网自建实例(如公网自建 MySQL)时,支持该配置。

      端口

      输入源自建实例的端口号。

      说明

      仅当接入方式为火山引擎 ECS 自建实例(如火山引擎 ECS 自建 MySQL)或公网自建实例(如公网自建 MySQL)时,支持该配置。

      VPC

      从下拉列表中选择源实例所属的 VPC 网络。

      说明

      仅当接入方式为火山引擎 ECS 自建实例(如火山引擎 ECS 自建 MySQL)时,支持该配置。

      数据库账号输入源实例的数据库账号。

      数据库密码

      输入源实例数据库账号对应的密码。

      说明

      输入完密码后,您可以单击测试连接,待测试通过后再进行后续配置。如果您的实例设置了访问限制,您还需要放开 DTS IP 段的访问权限才可继续进行同步任务。您可以单击查看 DTS IP 段来查看和复制 IP 段。

      • 实例类型选择 Redis 时,请配置相关参数信息,如下表所示:
      参数说明
      接入方式在创建同步任务时已选择,不支持更改接入方式。
      地域在创建同步任务时已选择,不支持更改地域。

      Redis 实例

      在下拉列表中选择源 Redis 实例。

      说明

      下拉列表中仅展示前 10 个实例信息,您可以通过实例 ID 或名称搜索目标实例。

      数据库账号当前仅支持使用默认账号 default,不支持修改。

      数据库密码

      输入目标实例数据库账号对应的密码。

      说明

      在缓存数据库 Redis 版的实例开启免密访问时,无需输入密码即可成功访问目标实例。关于开启免密访问的详细操作,请参见免密访问

    3. 填写如下目标库信息。
      按需选择实例类型,支持 MySQLElasticSearchRedis 实例类型。具体参数信息,如下所示:

    • 当源库的实例类型选择 MySQL 时,支持将数据同步到 MySQLElasticSearch 实例内。具体参数信息,如下表所示:
      参数说明
      MySQL接入方式不支持更改接入方式。
      地域选择目标实例所属的地域。

      MySQL 实例

      从下拉列表中选择目标 RDS 实例。

      说明

      • 仅接入方式为火山引擎 MySQL火山引擎 veDB MySQL 版 时,支持该配置。
      • 下拉列表中仅展示前 10 个实例信息,您可以通过实例 ID 或名称搜索目标实例。

      主机地址

      输入目标自建实例的主机地址。

      说明

      仅接入方式为火山引擎 ECS 自建实例(如火山引擎 ECS 自建 MySQL)或公网自建实例(如公网自建 MySQL)时,支持该配置。

      端口

      输入目标自建实例的端口号。

      说明

      仅接入方式为火山引擎 ECS 自建实例(如火山引擎 ECS 自建 MySQL)或公网自建实例(如公网自建 MySQL)时,支持该配置。

      私有网络

      从下拉列表中选择目标实例所属的 VP 网络。

      说明

      • 仅接入方式为火山引擎 ECS 自建实例(如火山引擎 ECS 自建 MySQL)时,支持该配置。
      数据库账号输入目标实例的数据库账号。

      数据库密码

      输入目标实例数据库账号对应的密码。

      说明

      输入完密码后,您可以单击测试连接,待测试通过后再进行后续配置。

      ElasticSearch接入方式不支持更改接入方式。

      ES 实例

      从下拉列表中选择目标 ElasticSearch 实例。

      说明

      • 仅接入方式选择火山引擎版 ElasticSearch 时,支持该配置。
      • 下拉列表中仅展示前 10 个实例信息,您可以通过实例 ID 或名称搜索目标实例。

      地址

      输入目标自建实例的主机地址。

      说明

      仅接入方式为火山引擎 ECS 自建 ElasticSearch公网自建 ElasticSearch 时,支持该配置。

      私有网络

      从下拉列表中选择目标实例所属的私有网络。

      说明

      仅接入方式为火山引擎 ECS 自建 ElasticSearch 时,支持该配置。

      数据库账号

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

      说明

      当接入方式选择火山引擎版 ElasticSearch 时,数据库账号只能设置为 admin。

      数据库密码

      输入目标实例数据库账号对应的密码。

      说明

      输入完密码后,您可以单击测试连接,待测试通过后再进行后续配置。

  • 当源库的实例类型选择 Redis 时,支持将数据同步到 Redis。具体参数信息,如下表所示:
参数说明
接入方式在创建同步任务时已选择,不支持更改接入方式。
地域在创建同步任务时已选择,不支持更改地域。

Redis 实例

在下拉列表中选择目标 Redis 实例。

说明

下拉列表中仅展示前 10 个实例信息,您可以通过实例 ID 或名称搜索目标实例。

数据库账号当前仅支持使用默认账号 default,不支持修改。

数据库密码

输入目标实例数据库账号对应的密码。

说明

在缓存数据库 Redis 版的实例开启免密访问时,无需输入密码即可成功访问目标实例。关于开启免密访问的详细操作,请参见免密访问

  1. 配置任务的项目和计费信息。

    参数说明
    项目创建同步任务时已选择,不支持更改。

    计费方式

    当前仅支持按量计费,无需选择。

    说明

    关于计费的详细信息,请参见计费说明

  2. 在页面右下角,单击下一步:配置同步对象

  3. 配置同步对象页,配置如下参数。
    根据不同实例类型的接入方式,按需配置相关参数信息:

    • 实例类型选择持 MySQL 时,您需要配置以下参数信息:
    参数说明

    基本信息

    初始化步骤

    支持选择结构初始化全量初始化

    说明

    固定选中增量同步,无需选择。预检查完成后,DTS 会将源实例中待同步对象的全量数据在目标实例中初始化,作为后续增量同步数据的基础。

    主键冲突处理

    选择当目标库已存在同主键值或唯一值时的处理方法,取值如下:

    • 冲突覆盖:在任务运行时如果遇到目标库已存在的同主键或唯一值,则数据库传输服务 DTS 不会保留目标端中冲突的数据,即源端的数据将会覆盖掉目标端的数据。

    • 冲突报错:在任务运行时如果遇到目标库已存在的同主键或唯一值,则任务会报错并停止运行,报错信息中会提示冲突的数据。

    • 冲突忽略:在任务运行时如果遇到目标库已存在的同主键或唯一值,则数据库传输服务 DTS 会保留目标端中冲突的数据,即源端的数据不会覆盖掉目标端的数据。

    注意

    • 主键冲突处理选择冲突报错时,根据数据同步阶段的不同,数据处理方式也存在差异,具体如下所示:
      • 全量初始化阶段:数据库传输服务 DTS 不会保留目标端中冲突的数据,即源端的数据将会覆盖掉目标端的数据。
      • 增量同步阶段:数据库传输服务 DTS 将进行冲突报错处理,同时任务将停止运行,并在报错信息中提示冲突数据。
    • 当数据进行冲突覆盖时,如果目标库中存在同名表,可能会导致数据不一致或任务失败等问题,具体如下所示。建议您通过表名映射的方式、删除或重命名目标库中同名表的方式避免数据不一致等问题降低业务风险。
      • 表结构一致时:全量同步的数据将覆盖目标表中与源库主键或唯一键的值相同的记录。
      • 表结构不一致时:可能会导致无法初始化数据,只能同步部分列数据或同步失败。

    同步类型选择

    选择需要同步的操作类型,您可以选择 DDL、Delete、Insert 或 Update 操作。

    说明

    关于支持的 DDL 操作语句详情,请参见支持同步的 SQL

    同步起始点

    设置从某个指定位点或时间点拉取 Binlog 日志,取值如下:

    • 系统默认:默认为当前时间点。
    • 指定GTID:在输入框内输入指定的 GTID,格式为 source_id:transaction_id
    • 指定GTID_EXECUTED:在输入框内输入指定的 GTID_EXECUTED,格式为 source_id:transaction_id,当存在多个时,可使用英文逗号(,)隔开。
    • 指定时间戳:单击输入框,选择日期,单击选择时间设置时间点,然后单击确定

    说明

    • 初始化步骤勾选了全量初始化时,不支持此步骤。
    • GTID、GTID_EXECUTED 必须是源端合法的值,否则预检查时会报错。
    • 当选择指定时间戳时,您设置的时间必须要晚于源端 Binlog 的最早时间。当没有对应时间 Binlog 时,则选取最接近 Binlog 的起点。
    同步对象选择需要同步的对象,如表格、视图、函数或存储过程等。

    高级配置

    开启 ETL 配置

    选择是否开启 ETL 功能。关于 ETL 的详细信息,请参见 ETL 简介

    • :使用 DSL 语法配置数据处理规则,并在 Code goes here... 输入框内输入 SQL 语句。详细信息,请参见 DSL 语法

    • :不开启 ETL 功能。

    说明

    • 当您在 Code goes here... 输入框内输入 SQL 语句后,需单击校验语法,验证数据处理语句是否正确。
    • ETL 功能目前处于邀测阶段,如需使用请联系技术支持。
    错误重试时间在同步任务中,当源库和目标库断连后导致同步任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 7200 秒。

    全量同步速率

    按需设置全量同步速率。防止在同步速率过高时,影响源库的性能,您可以根据源库和目标库的读写压力情况适当调整以下参数:

    • 每秒同步的行数:按需开启并设置每秒同步的行数。默认值 100000,取值范围 1~100000。
    • 每秒同步的数据量:按需开启并设置每秒同步的数据量。默认值 25000,取值范围 1~25000,单位 KB。

    说明

    同步类型选择全量初始化时,支持配置该参数。

  • 实例类型选择 ElasticSearch 时,您需要配置以下参数信息:

    参数说明

    基本信息

    初始化步骤

    支持选择结构初始化全量初始化

    说明

    固定选中增量同步,无需选择。预检查完成后,DTS 会将源实例中待同步对象的全量数据在目标实例中初始化,作为后续增量同步数据的基础。

    索引拼接规则

    按需选择索引的拼接规则,支持“表名”和库名+表名选项:

    • 表名:当您选择表名后,在目标 ElasticSearch 实例中创建的索引名和表名相同。

    • 库名+表名:当您选择库名+表名后,在目标 ElasticSearch 实例中创建的索引名为库名 + 表名。

    说明

    成功创建同步任务后,再修改索引拼接规则会重置同步对象的命名,须谨慎操作。

    主键冲突处理

    选择当目标库已存在同主键值的行时的处理方法,取值如下:

    • 冲突覆盖:使用源库数据覆盖目标库数据,同步任务可正常启动。
    • 冲突报错:预检查时提示相关报错,需手动修改相关数据,否则同步任务无法启动。
    • 冲突忽略:预检查时会跳过对目标数据库中存在同主键值的行,同步任务可正常启动。

    注意

    若选择冲突忽略处理方法,可能导致数据不一致,给业务带来风险,请谨慎选择。

    同步类型选择

    选择需要同步的操作类型,您可以选择 DDL、Delete、Insert 或 Update 操作。

    说明

    关于支持的 DDL 操作语句详情,请参见支持同步的 SQL

    同步对象选择需要同步的对象,如表格、视图、函数或存储过程等。

    库表字段配置

    配置库表字段相关信息,可以将文档自定义路由至 ElasticSearch 实例的分片中:

    • 是否 _routing。确定是否需要自定义路由模式:

      • :您可以将文档自定义路由至 ElasticSearch 的分片中。

      • :只能将文档通过 _id 路由至 ElasticSearch 的分片中。

    • _routing 列:自定义将文档索引至ElasticSearch分片内。默认为 _id

    • _id 取值:自定义构建文档 _id 值。当选择多个字段组成 _id 时,需使用下划线(_)连接。

    说明

    您也可以批量为多个数据库设置是否 _routing。

    高级配置

    开启 ETL 配置

    选择是否开启 ETL 功能。关于 ETL 的详细信息,请参见 ETL 简介

    • 是:使用 DSL 语法配置数据处理规则,并在 Code goes here... 输入框内输入 SQL 语句。详细信息,请参见DSL语法

    • 否:不开启 ETL 功能。

    说明

    • 当您在 Code goes here... 输入框内输入 SQL 语句后,需单击校验语法,验证数据处理语句是否正确。
    • ETL 功能目前处于邀测阶段,如需使用请联系客服人员。
    错误重试时间源库或目标库断连后,若能在该时间内重新连上,同步任务即可自动恢复。取值范围:600~86400,单位:秒(s)。默认值为 7200 秒。
  • 实例类型选择持 Redis 时,您需要配置以下参数信息:

参数说明

基本信息

初始化步骤

支持勾选全量初始化

说明

  • 固定选中增量同步,无需选择。

  • 同步拓扑选择双向同步且正向同步勾选了全量初始化时,反向同步需等待正向同步的全量初始化完成后才开始。

  • 预检查完成后,DTS 会将源实例中待同步对象的全量数据在目标实例中初始化,作为后续增量同步数据的基础。

同步对象同步对象区域中勾选需要同步的对象,您可以在已选择对象区域中确认需要同步的对象。
高级配置错误重试时间源库或目标库断连后,若能在该时间内重新连上,同步任务即可自动恢复。取值范围:600~86400,单位:秒(s)。默认值为 7200 秒。
  1. 单击预检查。您可以根据预检查结果执行如下操作:

    • 单击预检查结果操作列的详情,来查看详细的告警或失败信息,并根据告警或失败信息修改库表后,单击重试
    • 单击操作列的忽略,忽略本次告警继续启动同步任务。

    说明

    • 选择忽略告警并启动同步任务,可能导致数据不一致,给业务带来风险。
    • 关于预检查项的具体说明,请参见预检查项
  2. 在页面右下角,单击购买并启动

  3. 根据创建任务的计费类型,选择配置方式:

    • 按量付费
      确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务

    • 包年包月

      1. 确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务

      2. 确认订单信息配置向导页面,确认任务的计费信息。

      3. (可选)单击代金券兑换,在代金券兑换对话框,输入代金券兑换码后单击兑换

      4. (可选)在代金券区域,按需勾选可用代金券,单次仅支持选中一张,即可抵扣部分费用。也可不使用代金券。

      5. 单击下一步

      说明

      支付完成配置向导页面,显示支付成功则任务创建成功。

后续操作

若您在创建同步任务时,选择的同步拓扑是双向同步,那么当正向同步任务进入增量同步阶段后,您就可以配置反向同步任务。配置方法,请参见配置反向同步