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

数据库传输服务

复制全文
下载 pdf
源为公有网络 MySQL
迁移至火山引擎版 veDB MySQL
复制全文
下载 pdf
迁移至火山引擎版 veDB MySQL
本场景介绍如何在数据库传输服务 DTS 控制台创建公有网络 MySQL 迁移至火山引擎版 veDB MySQL 任务。
前提条件
  • 已在公网环境中自行搭建 MySQL,并创建数据库账号。
  • 创建数据迁移任务之前,请确认源库和目标库的网络连通性与服务可用性。
  • 您还可以根据预检查项中的说明,来检查源库和目标库中各迁移对象做相应准备。更多详情,请参见预检查项(MySQL)
限制说明
应用限制
类型
说明
源库限制
  • 数据库版本:当前支持 5.5、5.6、5.7 和 8.0 的 MySQL 实例。
说明
当 MySQL 实例的版本为 5.5 时,只支持结构迁移和数据迁移,不支持用户迁移。
  • 在源库的实例版本大于等于 5.6 时,需设置参数 gtid_modeON
说明
当 MySQL 的版本小于 8.0 且未开启参数 gtid_mode 时,可能会在数据迁移过程中导致外键级联删除失败,从而造成数据差异。
  • 带宽要求,源库所属的服务器需具备足够出口带宽,否则将影响数据迁移的速率。
  • 数据迁移支持的存储引擎包括 InnoDBMyISAMRocksDB。在数据迁移过程中,如果源库不是 InnoDB 存储引擎,系统会自动将其转换为 InnoDB。暂不支持 MariaDB 数据库引擎。
  • 将 MyISAM 存储引擎转换为 InnoDB 存储引擎时,暂不支持分区表。
  • 待迁移的表需具备主键或唯一非空约束,且字段具有唯一性,否则可能会导致数据不一致。如果待迁移的表是超大表,且不具备主键或唯一非空约束,当网络不好时,数据迁移可能会被卡住。
  • 如需进行增量迁移,Binlog 日志的参数要求:
  • 需开启 Binlog 日志功能。
  • binlog_formatrowbinlog_row_imagefull,否则预检查提示报错,且无法成功启动数据迁移任务。
  • Binlog 日志至少要保留 24 小时,建议保留 7 天以上的日志,否则 DTS 可能因无法获取日志从而导致任务失败,某些情况下也可能导致数据丢失。
  • 涉及外键依赖的表,需要同时迁移,否则将导致数据迁移失败。
  • 单任务中表的数量建议不超过 2 万,库的数量不超过 1000 个。当有大量库表需要迁移时,建议拆分为多个任务。
  • 源端数据库不支持配置多节点 Proxy 地址。在增量数据迁移阶段,DTS 需与特定数据库实例建立稳定的长连接。多节点 Proxy 的负载均衡或路由机制可能引发连接漂移或日志解析失败问题。建议您直接配置单一节点的连接地址,或采用数据库网关(DG)进行接入。
目标库限制
  • 数据库版本:当前支持 5.7 和 8.0 的 MySQL 实例。
说明
云数据库 veDB MySQL 版的 5.7 当前为邀测版本,如需使用,请提交工单联系技术支持。
  • 目标数据库的迁移账号权限,会影响视图、存储过程和函数的使用,具体限制如下所示:
  • 当目标数据库的迁移账号具有 SET_USER_ID 权限时,视图、存储过程和函数的限制如下所示:
  • 视图、存储过程、函数会保持原来的 definersql_security
  • 需要先完成账号迁移任务或手动在目标库创建对应账号后,视图、存储过程和函数才可以正常使用。
  • 当目标数据库的迁移账号不具有或不支持 SET_USER_ID 权限时,视图、存储过程和函数迁移后,definer 将会替换为迁移账号,sql_security 会设置为 invoker
说明
仅 MySQL 8.0 版本支持设置 SET_USER_ID 权限。
DDL 限制
  • 操作限制
  • 通用规则
  • 初始化阶段禁止 DDL:在链路创建、结构迁移、全量迁移过程中,禁止执行 DDL,否则任务将失败。
  • 当目标端有业务写入时,在源端执行 DDL 可能会导致数据丢失,例如:在增量迁移任务中,当业务流量完成切换(即写入已迁移至目标端)后,严禁在源端执行 DDL 操作,否则可能导致目标端数据丢失或结构不一致的严重后果。此时若要进行 DDL 操作,需在目标端执行,源端仅用于迁移回溯或只读查询。
说明
由于使用 gh-ost 或 pt-online-schema-change 等在线 DDL 工具执行 DDL 时会生成临时表,在临时表的 Rename、Drop 等操作期间目标端写入的数据会丢失。
  • OnlineDDL 支持范围:
  • DDL 迁移期间禁止向目标库写入数据,否则可能造成数据丢失。
  • DTS 支持迁移以下临时表(需确保目标库有写权限):
  • gh-ost:_原表名 _ghc、_原表名 _gho、_原表名 _del_原表名_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 列表:仅允许包括 CREATE TABLEADD COLUMNMODIFY COLUMN(仅限扩大字段长度)、CREATE INDEXDROP INDEX 的安全操作。
  • 禁止操作:修改字段类型、删除列、缩减字段长度等,否则将导致数据不一致或迁移断流。
其他限制
  • 建议源库和目标库的 MySQL 版本保持一致,或者从低版本迁移至高版本以保障兼容性。如果是高版本迁移至低版本,可能存在数据库兼容性或数据丢失问题。
  • 执行数据迁移前需评估源库和目标库的性能,建议在业务低峰期执行数据迁移。否则全量数据迁移时 DTS 占用源和目标库一定的读写资源,可能会导致数据库的负载上升。
  • 在迁移过程中,目标数据库可能会产生大量 Binlog 文件,因此导致目标库的磁盘使用量远远大于原实例的磁盘使用量。建议您在迁移或同步前,修改目标数据库 Binlog 的保存策略,避免 Binlog 文件占用过多存储空间。
  • 有库表名映射的迁移任务,存储过程迁移、函数迁移后映射不一定生效。
  • 当源库为 MySQL 8.0 版本时,在配置迁移任务时,您需要手动对以下账号直接授予数据迁移的相关权限:
  • 源库或目标库的账号是通过 Role 进行相关权限授权的。
  • 需要进行用户迁移的账号是通过 Role 进行相关权限授权的。
  • 仅支持对表、视图、存储过程、函数、触发器和事件迁移。
  1. 创建迁移任务页面的配置源库及目标库配置向导页面,配置以下参数信息。
  • 类别
    参数
    说明
    基本信息
    任务名称
    (可选)自定义迁移任务名称。长度需在 256 个字符内。
    说明
    若未进行设置,系统将默认生成一个以 dts- 开头命名的任务。
    链路规格
    按需选择迁移任务的链路规格,当前支持 CompactMediumStandard
    说明
    成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格
    源库配置
    选择已有数据源
    您可以按需选择是否使用已录入的实例:
    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理
    • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。
    实例类型
    选择 MySQL
    接入方式
    选择公有网络 MySQL
    说明
    在迁移公有网络 MySQL 实例时,您需要提前在源端的白名单或安全组策略中,添加 DTS IP 段的访问权限。单击查看 DTS IP 段查看和复制 IP 段。
    地域
    选择目标实例所属地域。
    主机地址
    输入目标库自建实例的主机地址。
    端口
    输入目标自建实例的端口号。
    数据库账号
    输入目标实例的数据库账号。
    数据库密码
    输入目标实例数据库账号对应的密码。
    连接方式
    按需选择非加密连接SSL 安全连接,建立更加安全可靠的迁移链路。
    说明
    • 当选择 SSL 安全连接时,您需提前开通公有网络 MySQL 实例的 SSL 加密功能。
    • 当迁移任务选择非加密连接且任务正常运行时,开通了公有网络 MySQL 实例的 SSL 加密功能可能会导致非加密任务失败。
    SSL 加密证书
    单击上传 SSL 加密证书上传 CA 证书。当连接方式选择了 SSL 安全连接时,支持该配置。
    测试连接
    单击测试连接,验证是否成功连接实例。
    当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
    • 连接认证失败,请检查网络是否正常:当出现该报错提示时,请确认网络的连通性。
    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。
    • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。
    目标库配置
    选择已有数据源
    您可以按需选择是否使用已录入的实例:
    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理
    • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。
    实例类型
    选择 MySQL
    接入方式
    选择火山引擎版 veDB MySQL
    地域
    选择目标实例所属地域。
    MySQL 实例
    在下拉列表中选择火山引擎版 veDB MySQL 的目标实例。
    说明
    下拉列表中仅展示前 10 个实例。您也可以通过实例 ID 或名称搜索目标实例。
    数据库账号
    输入目标实例的数据库账号。
    数据库密码
    输入目标实例数据库账号对应的密码。
    测试连接
    单击测试连接,验证是否成功连接实例。
    当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。
    • 连接认证失败,无法正常创建连接, 请联系客服:当出现该报错提示时,请提交工单联系技术支持。
    项目
    (可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目
    说明
    • 关于如何授予子用户访问指定项目下资源的权限操作步骤,请参见修改项目权限
    • 成功创建任务后,如果需要修改实例的所属项目,例如将任务从当前项目移入至其他项目,您可以将资源移入指定项目。
    • 项目是一个虚拟的概念,包括一组资源、用户和角色。通过项目可以对一组资源进行统一的查看和管理,并且控制项目内用户和角色对这些资源的权限。
    标签
    (可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:
    • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。
    • 大小写敏感,且长度在 1~128 个字符内。
    • 使用 UTF-8 编码的 Unicode 格式。
    • 不支持设置以 volc: 开头的任何形式的 Key,例如 Volc:VOLC: 等。
    • (可选)值
    • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。
    • 大小写敏感,且长度在 0~256 个字符内。
    • 使用 UTF-8 编码的 Unicode 格式。
    说明
    • 支持模糊搜索选择已有标签键和标签值。
    • 单次最多可给任务绑定 20 个标签。单个任务最多可绑定 50 个标签。
    • 同一个资源拥有的标签 Key 不可重复,且一个标签 Key 只有一个值 Value。
    计费方式
    当前仅支持按量计费,您无需选择。
    说明
    关于计费的详细信息,请参见计费说明
  1. 单击下一步:配置迁移对象
  1. 配置迁移对象配置向导页面,配置相关参数信息,如下表所示。
说明
  • 若暂时不需要启动迁移任务,您可以在完成迁移对象配置后,单击页面右下角的保存
  • 保存后会跳转回迁移任务列表页,此时任务状态为待启动,您可以在合适的时候再配置迁移任务。配置方法,请参见配置迁移任务
  • 参数
    说明
    迁移类型
    按需选择迁移类型,当前支持用户迁移结构迁移全量迁移增量迁移。其中:
    • 若仅需要全量迁移,可同时勾选结构迁移全量迁移
    • 若需要进行不停机迁移,可以同时勾选结构迁移全量迁移增量迁移
    • 若需要将源库中指定的非系统账号及账号所拥有的权限迁移到目标库,可以勾选用户迁移
    说明
    • 当只勾选全量迁移时,成功创建任务后,可以在任务详情页签查看全量迁移的具体截止 GtidSet(含),表示该 GtidSet 前所有的数据均被迁移至目标库,该 GtidSet 点后源库有变动的数据将不会迁移至目标库。
    • 若未勾选增量迁移,数据迁移期间请勿在源库实例中写入新的数据,以确保数据的一致性。
    • 若需要进行用户迁移,用户和权限的迁移需要单独处理。当出现源数据库部分账号不支持迁移时,需先确保业务不受这些账号的缺失而影响运行。
    迁移用户
    按需勾选目标账号,在目标账号的新密码(选填) 列设置新密码。当需迁移多个用户时,可单击批量修改密码,统一修改需要迁移的账号密码,若不修改则目标库账号密码和源库密码一致。
    说明
    迁移类型选择用户迁移时,支持此配置。
    迁移起始点
    设置从某个指定位点或时间点拉取 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 的起点。
    是否开启外键检查
    按需选择是否开启外键检查,开启外键检查后,支持迁移源库的外键级联更新、删除等操作,从而保证数据迁移的完整性和一致性。
    迁移对象
    迁移对象区域中勾选需要迁移的对象,支持通过普通搜索全局搜索方式查询目标对象。同时,您可以在已选择对象区域中实现以下操作:
    • 重命名库或表:单击目标库、表和视图后的笔状图标,重命名库、表和视图。如果在迁移对象区域勾选了整库,则在已选择对象区域仅支持修改库名,且不支持展开该数据库。单击批量映射,可以批量修改库或表名,更多信息请参见库表批量映射
    • 筛选删除不需要的目标:在已选择对象区域的搜索框内支持模糊搜索,批量删除不需要的数据库、表等目标。
    • 过滤表内数据:勾选过滤数据,可以实现对表内数据的过滤。
    说明
    • 迁移对象已选择对象区域支持通过正则表达式搜索目标对象。
    • 迁移对象非整库时,不支持 OnlineDDL 操作,且增量迁移不支持自动迁移新增的对象及其相关变更。
    • 迁移对象选择的粒度为库或表。若迁移对象选择的是表,则其他对象例如视图、触发器、函数或存储过程等,不会被迁移至目标库。
    • 为保证数据迁移的性能和迁移任务的稳定性,云数据库版 MySQL 的触发器和事件会在增量迁移结束后才进行迁移。
    过滤条件
    (可选)在开启过滤条件时,可以在全量数据扫描阶段即开始过滤数据,进而提高迁移性能,您可以在目标库、表或视图的过滤条件列,单击笔状图标,设置过滤条件,然后单击校验语句,验证是否满足过滤条件。
    说明
    • 该功能当前属于邀测阶段,如需使用可提交工单联系技术支持。
    • 迁移对象的库、表或视图勾选了过滤数据,才支持配置此字段。
    • 过滤条件当前支持=!=<><=>=inis nullandor操作符。
    是否前置迁移触发器
    按需选择是否前置迁移触发器,支持以下选择:
    • :DTS 默认在增量迁移结束后迁移触发器。
    • :DTS 在增量迁移启动前迁移触发器,并在目标库的触发器中添加控制语句,以避免 DTS 触发目标库中的触发器。
    说明
    • 此功能为白名单发布,如需使用请提交工单联系技术支持。
    • 仅当同时满足以下条件时,才支持配置参数。
    • 迁移类型包括结构迁移及增量迁移。
    • 迁移对象包含触发器。
    触发器迁移方式
    按需选择前置触发器迁移方式,支持以下选择:
    • 自动迁移:DTS 在增量迁移前,自动迁移触发器,并在目标库的触发器中添加控制语句,以避免 DTS 触发目标库中的触发器。
    • 手动触发迁移:DTS 在增量迁移前,需手动迁移触发器,并在目标库的触发器中添加控制语句,以避免 DTS 触发目标库中的触发器。
    说明
    仅当是否前置迁移触发器配置为时,支持配置此参数。
    是否打开事务合并
    选择是否在迁移数据时进行事务合并。打开事务合并是一种优化迁移任务的方法,通过合并多个单独事务提高迁移任务的整体效率和性能,并确保数据一致性。当数据迁移频繁且数据量较大时,开启事务合并可以提高数据迁移的效率。
    • :不打开事务合并。
    • :打开事务合并。
    迁移偏好
    按需选择迁移偏好策略,支持以下选择:
    • 性能优先:可以提升存量数据迁移的速率,但可能会增加磁盘碎片的空间占用,导致系统负载较高,建议目标端多预留 50% 的存储空间。性能优先适用于对存量数据迁移速度要求较高的业务场景,例如金融交易、快速数据采集和实时监控等场景。
    • 空间优先:测试空间放大率一般在 5% 左右,适用于存储资源有限、对数据迁移时效性要求相对较低的场景,例如数据归档、历史数据备份、日志文件同步等场景。
    错误重试时间
    在迁移任务中,当源库和目标库断连后导致迁移任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。
    全量迁移速率
    按需设置全量迁移速率。防止在迁移速率过高时,影响源库的性能,您可以根据源库和目标库的读写压力情况适当调整以下参数:
    • 每秒迁移的行数:按需开启并设置每秒迁移的行数。默认值 100000,取值范围 1~100000。
    • 每秒迁移的数据量:按需开启并设置每秒迁移的数据量。默认值 25000,取值范围 1~25000,单位 KB。
    • 迁移任务并发数:按需设置迁移任务的并发数。默认值 8,取值范围 1~64。
    说明
    • 迁移类型选择全量迁移时,支持配置该参数。
    • 当迁移速率过高时,可能会影响源库性能,请根据源和目标库的读写压力情况适当调整。
最近更新时间:2026.07.30 10:00:15
这个页面对您有帮助吗?
有用
有用
无用
无用