You need to enable JavaScript to run this app.
文档中心
数据库传输服务

数据库传输服务

复制全文
下载 pdf
数据同步快速入门
创建并启动同步任务
复制全文
下载 pdf
创建并启动同步任务
数据库传输服务 DTS 提供多种类型的数据库同步服务。本文以创建火山引擎版 MySQL 同步至火山引擎版 MySQL 任务为例,介绍如何通过数据库传输服务 DTS 创建并启动数据同步任务。
前提条件
  • 创建数据同步任务之前,请确认源库和目标库的网络连通性与服务可用性。
  • 已确认源端和目标端的网络连通性与服务可用性。
  • (可选)根据预检查项中的说明,检查源端和目标端中各同步对象。更多详情,请参见预检查项(MySQL)
注意事项
  • 目标库与账号规范
  • 自动建库与命名规范:当目标库使用高权限账号时,DTS 会自动在目标库中创建数据库。若待同步的数据库名称不符合目标数据库的命名规范,请您务必在配置同步任务前,提前在目标库中手动创建该数据库。
  • 同名表冲突风险:当同步过程中发生数据冲突覆盖时,若目标库中已存在同名表,可能会引发数据不一致或任务失败。建议通过配置表名映射,或提前删除/重命名目标库中的同名表来规避风险:
  • 表结构一致时:全量同步的数据将直接覆盖目标表中与源库主键或唯一键值相同的记录。
  • 表结构不一致时:可能导致初始化失败、仅同步部分列数据或任务直接报错。
  • 结构同步与约束处理
  • 外键同步机制:在库表结构初始化阶段,DTS 会将源数据库中的外键定义同步至目标数据库。
  • 约束检查临时禁用:在全量初始化和增量同步期间,DTS 会以 Session 级别暂时禁用目标库的约束检查和外键级联操作。因此,若源库在任务运行时存在级联更新或删除操作,可能会导致两端数据不一致。
  • 对象变更与冲突处理
  • 新建或重命名表(DDL)操作:同步过程中,如果源端执行了 CREATE TABLERENAME TABLE 操作,请务必在配置同步对象时,勾选该表所在的整库(或 RENAME 后的目标整库)。否则,新建的表或重命名后的表将不会被自动同步到目标端。
  • 主键/唯一键冲突处理差异:当检测到同主键或唯一键冲突时,不同阶段的处理机制如下:
  • 全量初始化阶段:DTS 不会保留目标端的冲突数据,源端数据将直接覆盖目标端数据。
  • 增量同步阶段:DTS 会直接报错并暂停任务。您需要手动处理冲突数据后,任务才能恢复运行。
限制说明
类型
说明
源库和目标库限制基础限制
  • 版本与引擎要求
  • 当前支持 MySQL 5.7 和 8.0 版本,仅支持 InnoDB 存储引擎,暂不支持 MariaDB。建议源库和目标库版本保持一致,或从低版本同步至高版本以保障兼容性。
  • 当源库版本 ≥ 5.6 时,gtid_modeenforce_gtid_consistency 均需为 ON。若 MySQL 版本 < 8.0 且未开启 gtid_mode,可能导致外键级联删除失败,引发数据差异。
  • 当源库为 MySQL 8.0 时,若账号通过 Role 授权,需在配置任务时手动授予数据同步相关权限。
  • Binlog 日志要求
  • 必须开启 Binlog,且设置 binlog_formatrowbinlog_row_imagefull,否则预检查将报错。
  • Binlog 至少保留 24 小时(建议 7 天以上),否则 DTS 可能因无法获取日志导致任务失败或数据丢失。
  • 表结构与对象限制
  • 待同步的表需具备主键或唯一非空约束,且字段具有唯一性,否则可能导致数据不一致。
  • 涉及外键依赖的表需同时同步。
  • 仅支持同步表格、视图、函数和存储过程。有库表名映射时,存储过程和函数的映射不一定生效。
  • 单任务建议不超过 2 万张表、1000 个库。大量库表同步时建议拆分为多个任务。
  • 权限对视图/存储过程的影响
  • 若目标库同步账号具有 SET_USER_ID 权限(仅 MySQL 8.0 支持):视图、存储过程、函数将保持原有的 definersql_security,但需先完成账号同步或手动创建对应账号后才能正常使用。
  • 若目标库同步账号不具有或不支持 SET_USER_ID 权限:同步后 definer 将替换为同步账号,sql_security 会设置为 invoker
DDL 限制
  • 操作限制
  • 通用规则
  • 初始化阶段禁止 DDL:在链路创建、结构初始化、全量同步过程中,禁止执行 DDL,否则任务将失败。
  • 当目标端有业务写入时,在源端执行 DDL 可能会导致数据丢失,例如:
  • 单向同步任务:在单向增量同步任务中,当业务流量完成切换(即写入已迁移至目标端)后,严禁在源端执行 DDL 操作,否则可能导致目标端数据丢失或结构不一致的严重后果。此时若要进行 DDL 操作,需在目标端执行,源端仅用于同步回溯或只读查询。
  • 双向同步任务:若两边的数据库有业务写入时,在任何一边执行 DDL,可能都会导致目标端数据丢失或结构不一致。
说明
由于使用 gh-ost 或 pt-online-schema-change 等在线 DDL 工具执行 DDL 时会生成临时表,在临时表的 Rename、Drop 等操作期间目标端写入的数据会丢失。
  • OnlineDDL 支持范围:
  • DDL 同步期间禁止向目标库写入数据,否则可能造成数据丢失。
  • DTS 支持同步以下临时表(需确保目标库有写权限):
  • gh-ost:_原表名_ghc_原表名_gho_原表名_deltp_{变更ID}_ogt_{原表名}tp_{变更ID}_g_{原表名} tp_{变更ID}_del_{原表名}tp_{变更ID}_d_{原表名}
  • pt-osc:_原表名 _new、_原表名 _old
  • 表映射(重命名)功能与 OnlineDDL 临时表同步互斥,二者只能启用其一。
  • 避免频繁 DDL:频繁对同一张表执行 DDL 可能导致 DTS 元数据更新失败,存在断流风险。您可以通过以下方式规避:
  • 控制台操作 DDL 的操作至少间隔 1~3 秒。
  • 跨库 DDL 限制:若某数据库未被纳入同步对象,则不能对该库执行影响已同步库的 DDL(如跨库视图、外键等),否则同步任务会失败。
  • 当前仅支持正向任务的 DDL 同步到目标库,不自动同步反向 DDL。如需同步反向 DDL,应先调整 DDL 同步方向,再执行操作。详细操作,请参见调转双向同步任务的 DDL 同步方向
  • 特殊限制
  • 必须保证表结构向前兼容 DDL 列表:仅允许包括 CREATE TABLEADD COLUMNMODIFY COLUMN(仅限扩大字段长度)、CREATE INDEXDROP INDEX 的安全操作。
  • 禁止操作:修改字段类型、删除列、缩减字段长度等,否则将导致数据不一致或同步断流。
双向同步特定限制
  • 数据写入与冲突控制
  • 单点写入原则:对于具有相同主键、业务主键或唯一键的记录,仅允许在一个节点(源端或目标端)进行更新。严禁两端同时更新,否则系统将依据冲突策略处理,极易导致数据不一致。
  • 禁止向目标库写入非 DTS 数据:同步期间,不得通过应用、脚本或其他工具向目标库写入数据,否则可能导致主键冲突或数据覆盖。
  • 灰度验证时,当表中存在自增主键时,必须严格评估源端与目标端的新增数据,确保不存在主键值冲突。若未提前规避,双向同步过程中极易触发主键冲突,进而导致数据不一致。
  • 网络与拓扑建议
  • 出云链路(火山引擎到公有云)可能因带宽或延迟导致性能瓶颈,不建议直接创建双向同步任务。
  • 双向同步由两个独立的单向任务(正向 + 反向)组成,需分别配置并确保过滤规则、冲突策略一致。
性能与其他限制
  • 带宽与性能:源库服务器需具备足够的出口带宽。全量数据初始化会占用一定的读写资源,建议在业务低峰期执行。
  • 磁盘空间:同步过程中目标库可能产生大量 Binlog 文件,导致磁盘使用量远超源实例。建议提前修改目标库 Binlog 保存策略,避免磁盘空间不足。
支持的同步架构
  • 一对一单向同步
  • 一对多单向同步
  • 多对一单向同步
  • 级联单向同步
  • 一对一双向同步
关于数据库传输服务 DTS 支持的同步拓扑类型和使用说明,请参见数据同步拓扑
支持的 SQL 操作
操作类型
SQL 操作语句
DML
INSERT、UPDATE、DELETE
DDL
  • ALTER TABLE、ALTER VIEW
  • CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、CREATE VIEW
  • DROP INDEX、DROP TABLE、DROP VIEW、DROP FUNCTION、DROP PROCEDURE
  • RENAME TABLE
  • TRUNCATE TABLE
数据库账号最小权限策略
数据库
结构初始化
全量初始化
增量同步
源库
SELECT 权限
SELECT 权限
REPLICATION SLAVEREPLICATION CLIENTSELECT 权限。
目标库
读写权限
读写权限
读写权限
5. 在创建同步任务页面的配置源库及目标库配置向导页面,配置以下参数信息。
类别
参数
说明
基本信息
任务名称
(可选)自定义同步任务名称。长度需在 256 个字符内。
说明
若未进行设置,系统将按照命名规则,默认生成一个以 dts- 开头命名的任务。
链路规格
按需选择同步任务的链路规格,当前支持 CompactMediumStandard
说明
成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格
同步拓扑
根据业务需要选择同步拓扑,当前支持单向同步双向同步
说明
双向同步当前仅支持 MySQL 5.6 及以上版本。关于同步拓扑的更多信息,请参见数据同步拓扑
源库配置
选择已有数据源
您可以按需选择是否使用已录入的实例:
  • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理
  • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。
实例类型
选择 MySQL
接入方式
选择火山引擎版 MySQL
地域
选择目标实例所属地域。
是否跨火山引擎账号
按需选择是否跨账号传输数据,取值如下:
  • 本账号:选择本账号时,表示仅在本账号内实现数据传输。
  • 跨账号:选择跨账号时,表示将实现两个账号间的数据传输。
说明
  • 在进行跨账号传输数据时,您需要通过目标端所在的账号登录数据库传输服务 DTS 控制台。
跨账号 ID
输入源库所属的火山引擎账号 ID。
跨账号角色
输入已授权 DTS 访问跨账号资源的 IAM 角色。
MySQL 实例
在下拉列表中选择云数据库版 MySQL 的目标实例。
说明
您也可以通过实例 ID 或名称搜索目标实例。
节点类型
按需选择节点类型,当前支持选择主节点只读节点
说明
当实例内创建了只读节点时,支持选择只读节点。关于创建只读节点的详细操作,请参见只读节点概述
MySQL 只读节点
从下拉列表中选择目标只读节点。
说明
在实例中创建了只读节点,且节点类型选择只读节点时,支持配置此参数。
数据库账号
输入目标实例的数据库账号。
数据库密码
输入目标实例数据库账号对应的密码。
测试连接
单击测试连接,验证是否成功连接实例。 当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
  • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。
  • 连接认证失败,无法正常创建连接,请联系客服:当出现该报错提示时,请提交工单联系技术支持。
目标库配置
选择已有数据源
您可以按需选择是否使用已录入的实例:
  • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理
  • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。
实例类型
选择 MySQL
接入方式
选择火山引擎版 MySQL
地域
选择目标实例所属地域。
MySQL 实例
在下拉列表中选择云数据库版 MySQL 的目标实例。
说明
您也可以通过实例 ID 或名称搜索目标实例。
数据库账号
输入目标实例的数据库账号。
数据库密码
输入目标实例数据库账号对应的密码。
测试连接
单击测试连接,验证是否成功连接实例。 当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
  • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。
  • 连接认证失败,无法正常创建连接,请联系客服:当出现该报错提示时,请提交工单联系技术支持。
Project 与项目
项目
(可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目
说明
  • 关于如何授予子用户访问指定项目下资源的权限操作步骤,请参见修改项目权限
  • 成功创建任务后,如果需要修改实例的所属项目,例如将任务从当前项目移入至其他项目,您可以将资源移入指定项目。
  • 项目是一个虚拟的概念,包括一组资源、用户和角色。通过项目可以对一组资源进行统一的查看和管理,并且控制项目内用户和角色对这些资源的权限。
标签
(可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:
  • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。
  • 大小写敏感,且长度在 1~128 个字符内。
  • 使用 UTF-8 编码的 Unicode 格式。
  • 不支持设置以 volc: 开头的任何形式的 Key,例如 Volc:VOLC: 等。
  • (可选)值
  • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。
  • 大小写敏感,且长度在 0~256 个字符内。
  • 使用 UTF-8 编码的 Unicode 格式。
说明
  • 支持模糊搜索选择已有标签键和标签值。
  • 单次最多可给任务绑定 20 个标签。单个任务最多可绑定 50 个标签。
  • 同一个资源拥有的标签 Key 不可重复,且一个标签 Key 只有一个值 Value。
计费方式
按需选择计费方式,当前支持按量计费包年包月两种计费方式。
说明
关于计费的详细信息,请参见计费说明
购买时长
按需选择包年包月的购买时长。
说明
计费方式选择包年包月时,支持设置购买时长,同时您还可以勾选到期自动续费,系统会在任务到期前自动续费。
  1. 单击下一步:配置同步对象
  1. 配置同步对象配置向导页面,配置相关参数信息,如下表所示。
说明
  • 若暂时不需要启动同步任务,您可以在完成同步对象配置后,单击页面右下角的保存
  • 保存后会跳转回同步任务列表页,此时任务状态为待启动,您可以在合适的时候再配置同步任务。配置方法,请参见配置同步任务
参数
说明
同步类型
按需选择同步类型,当前支持用户初始化结构初始化全量初始化增量同步
说明
  • 默认勾选增量同步
  • 在勾选结构初始化全量初始化时,预检查完成后,数据库传输服务 DTS 会将源实例中待同步对象的数据在目标实例中初始化,作为后续增量同步数据的基础。
  • 若需要将源库中指定的非系统账号及账号所拥有的权限同步到目标库,可以勾选用户初始化
迁移用户
按需勾选目标账号,在目标账号的新密码(选填) 列设置新密码。当需迁移多个用户时,可单击批量修改密码,统一修改需要迁移的账号密码,若不修改则目标库账号密码和源库密码一致。
说明
  • 同步类型选择用户初始化时,支持此配置。
  • 数据库同步过程中,用户及权限的同步需要单独处理。如果出现源数据库部分账号不支持同步时,请先确保业务不受需同步账号的缺失而影响运行。
冲突处理策略
选择当目标库已存在同主键值或唯一值时的处理方法,取值如下:
  • 冲突覆盖:在任务运行时如果遇到目标库已存在的同主键或唯一值,则数据库传输服务 DTS 不会保留目标端中冲突的数据,即源端的数据将会覆盖掉目标端的数据。
  • 冲突忽略:在任务运行时如果遇到目标库已存在的同主键或唯一值,则数据库传输服务 DTS 会保留目标端中冲突的数据,即源端的数据不会覆盖掉目标端的数据。
注意
  • 冲突报错策略表示在任务运行时如果遇到目标库已存在的同主键或唯一值,则任务会报错并停止运行,报错信息中会提示冲突的数据。当前该策略属于加白功能,如需使用,请提交工单
  • 当数据进行冲突覆盖时,如果目标库中存在同名表,可能会导致数据不一致或任务失败等问题,具体如下所示。建议您通过表名映射的方式、删除或重命名目标库中同名表的方式避免数据不一致等问题降低业务风险。
  • 表结构一致时:全量同步的数据将覆盖目标表中与源库主键或唯一键的值相同的记录。
  • 表结构不一致时:可能会导致无法初始化数据,只能同步部分列数据或同步失败。
同步起始点
设置从某个指定位点或时间点拉取 Binlog 日志,取值如下:
  • 系统默认:默认为任务启动时间点。
  • 指定 GTID:在输入框内输入指定的 GTID,格式为 source_id:transaction_id
  • 指定 GTID_EXECUTED:在输入框内输入指定的 GTID_EXECUTED,格式为 source_id:transaction_id,当存在多个时,可使用英文逗号(,)隔开。关于如何获取实例的 GTID_EXECUTED,请参见如何获取实例的 GTID_EXECUTED
  • 指定时间戳:单击输入框,选择日期,单击选择时间设置时间点,然后单击确定
说明
  • 同步类型勾选了全量初始化时,不支持此步骤。
  • 同步类型同时勾选了全量初始化增量同步时,同步起始点默认为当前时间点且不支持修改。
  • GTID、GTID_EXECUTED 必须是源端合法的值,否则预检查时会报错。
  • 当选择指定时间戳时,您设置的时间必须要晚于源端 Binlog 的最早时间。当没有对应时间 Binlog 时,则选取最接近 Binlog 的起点。
同步类型选择
选择需要同步的操作类型,当前支持同步 DML 和 DDL 操作语句。具体如下所示:
  • DML:当前支持 DELETEInsertUpdate,默认勾选全部 DML 操作语句,可按需调整。
  • DDL:默认支持同步全量 DDL,即同步全部 DDL 操作语句,您也可以单击自定义 DDL,默认勾选全部 DDL 操作语句,可按需调整。若无需同步 DDL 操作语句,可单击不同步
说明
关于数据库传输服务 DTS 在数据同步时支持的 DDL 操作语句,请参见支持同步的 SQL
是否开启外键检查
按需选择是否开启外键检查,开启外键检查后,支持同步源库的外键级联更新、删除等操作,从而保证数据同步的完整性和一致性。
同步对象
选择需要同步的对象,如表格、视图、函数或存储过程等,支持通过普通搜索全局搜索方式查询目标对象。同时,您可以在已选择对象区域中实现以下操作:
  • 重命名库或表:单击目标库、表和视图后的笔状图标,重命名库、表和视图。如果在迁移对象区域勾选了整库,则在已选择对象区域仅支持修改库名,且不支持展开该数据库。单击批量映射,可以批量修改库或表名,更多信息请参见库表批量映射
  • 筛选删除不需要的目标:在已选择对象区域的搜索框内支持模糊搜索,批量删除不需要的数据库、表等目标。
  • 如果同步类型选择了结构初始化,那么在已选择对象区域,支持按需勾选目标库或表是否进行结构初始化。
说明
同步对象已选择对象区域支持通过正则表达式搜索目标对象。
高级配置
已选库表
仅支持重新单独设置同步表的同步类型、冲突策略和数据过滤,具体如下所示:
  • 全量初始化:当同步类型勾选了全量初始化时,支持按需勾选或取消目标表的全量初始化。
  • 增量同步:同步类型默认勾选增量同步,您可以按需勾选或取消目标表的增量同步。
  • 冲突策略:按需设置目标表的冲突策略,冲突策略支持设置为冲突报错、冲突忽略或冲突覆盖。关于冲突策略的详细信息,请参见冲突处理策略的参数说明。当仅选择全量初始化时,则不支持修改冲突策略。
  • 全量数据过滤:按需在目标表的全量数据过滤列设置表的过滤策略,提高迁移性能,完成目标表的过滤设置后,单击校验语句,验证是否满足过滤条件。
说明
  • 当同步对象按整库选择,且未展开目标库时,已选库表仅支持按库级别进行相关参数设置。
  • 该功能当前属于邀测阶段,如需使用,请提交工单联系技术支持。
  • 过滤条件当前支持=!=<><=>=inis nullandor操作符。
是否打开事务合并
打开事务合并是一种优化同步任务的方法,通过合并多个单独事务提高同步任务的整体效率和性能,并确保数据一致性。当数据同步频繁且数据量较大时,开启事务合并可以提高数据同步的效率。
同步偏好
按需选择同步偏好策略,支持以下选择:
  • 性能优先:可以提升存量数据同步的速率,但可能会增加磁盘碎片的空间占用,导致系统负载较高,建议目标端多预留 50% 的存储空间。性能优先适用于对存量数据同步速度要求较高的业务场景,例如金融交易、快速数据采集和实时监控等场景。
  • 空间优先:测试空间放大率一般在 5% 左右,适用于存储资源有限、对数据同步时效性要求相对较低的场景,例如数据归档、历史数据备份、日志文件同步等场景。
开启 ETL 配置
选择是否开启 ETL 功能。关于 ETL 的详细信息,请参见 ETL 简介
  • :表示开启 ETL 功能。
  • 开启 ETL 规则后,单击快速配置字段映射/过滤规则,在快速配置字段映射/过滤规则对话框配置同步对象,单击确定,即可快速生成 ETL 语句。
  • 在开启 ETL 功能后,您可以参考 DSL 语法配置数据处理 ETL 规则,在输入 ETL 语句或使用 ETL 助手生成语句…文本框中输入数据处理 ETL 规则即 DSL 脚本,单击校验语法,验证数据处理语句是否正确。
  • 您也可以使用 ETL 助手,使用自然语言生成 ETL 语句。在 ETL 语句文本框的右上角,单击 ETL 助手,输入 ETL 需求,然后按回车键。待生成 ETL 后,将生成的 ETL 语句复制到 ETL 文本框中。ETL 助手拥有多种 ETL 语句生成能力,更多信息,请参见 ETL 助手能力
  • :表示不开启 ETL 功能。
错误重试时间
在同步任务中,当源库和目标库断连后导致同步任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。
开启毫秒级延迟监控
按需设置是否开启毫秒级延迟监控。开启后,可实现高精度、全链路、主动式的端到端延迟度量,有效提升监控的稳定性和对网络中断、空闲断流等异常场景的感知能力。
开启后,DTS 会向源库写入心跳,需要源端账号具备 SELECT、INSERT 和 UPDATE 权限。您也可以在源端手动创建心跳表以开启毫秒级延迟监控功能,操作步骤,请参见手动创建心跳表
全量同步速率
按需设置全量同步速率。防止在同步速率过高时,影响源库的性能,您可以根据源库和目标库的读写压力情况适当调整以下参数:
  • 每秒同步的行数:按需开启并设置每秒同步的行数。默认值 100000,取值范围 1~100000。
  • 每秒同步的数据量:按需开启并设置每秒同步的数据量。默认值 25000,取值范围 1~25000,单位 KB。
  • 同步任务并发数:按需设置同步任务的并发数。默认值 8,取值范围 1~64。
说明
  • 同步类型选择全量初始化时,支持配置该参数。
  • 当同步速率过高时,可能会影响源库性能,请根据源和目标库的读写压力情况适当调整。
最近更新时间:2026.05.21 17:09:18
这个页面对您有帮助吗?
有用
有用
无用
无用