首批通过分布式安全可靠测评,为关键业务系统打造
迁移 OceanBase 数据库 MySQL 兼容模式的数据至 MySQL 数据库
更新时间:2026-06-16 18:02:47
您可以新建从 OceanBase 数据库 MySQL 兼容模式至 MySQL 数据库的数据迁移任务,通过结构迁移、全量迁移和增量同步,无缝迁移源端数据库中的存量业务数据和增量数据至目标端数据库。
注意
如果数据迁移任务长期处于非活跃状态(任务状态为 失败、已暂停 或 已完成),受增量日志保留时长等影响,任务可能无法恢复。数据迁移将主动释放处于非活跃状态超过 7 天的任务,以回收相关资源,建议您为任务配置告警并及时处理任务相关异常。
前提条件
已创建 OceanBase 数据库的集群和租户,详情请参见 创建集群。
已为源端和目标端创建专用于数据迁移的数据库用户,并赋予其相关权限。详情请参见 数据迁移用户权限。
已创建目标端数据库实例。
不同云厂商的数据库云实例创建文档如下:
云厂商为 AWS 时:创建 Aurora MySQL 数据库实例。
云厂商为华为云时:RDS for MySQL 数据库实例。
云厂商为阿里云时:创建 RDS MySQL 数据库实例 或 购买 PolarDB MySQL 集群。
云厂商为腾讯云时:创建 TencentDB for MySQL 数据库实例。
使用限制
仅项目角色为 项目所有者、项目管理员 或 数据服务管理员 的用户支持新建数据迁移任务。
源端数据库的操作限制
请勿在结构迁移和全量迁移阶段执行库或表结构变更的 DDL 操作,否则可能造成数据迁移任务中断。
目前数据迁移支持 TencentDB for MySQL V5.x,Aurora MySQL V2.x、V3.x,华为云 RDS MySQL V5.6、V5.7、V8.0、V8.4,MySQL 数据库 V5.6、V5.7、V8.0、V8.4,OceanBase 数据库 MySQL 兼容模式 V2.x、V3.x 和 V4.x。
数据迁移仅支持迁移库名、表名和列名为 ASCII 码且不包含特殊字符(包括 .|"'`()=;/& 和换行)的对象。
数据迁移不支持大小写敏感模式。如果目标端存在同名仅大小写不一致的库或表,预检查会报错。
目标端是数据库的情况下,数据迁移不支持目标端存在触发器(Trigger)。如果存在,可能导致数据迁移失败。
注意事项
如果源端字符集为 UTF-8,建议目标端使用兼容源端的字符集(例如,UTF-8、UTF-16 等),避免产生因字符集不兼容导致目标端出现乱码等问题。
节点之间的时钟不同步,或者电脑终端和服务器之间的时钟不同步,均可能导致增量同步的延迟时间不准确。
例如,如果时钟早于标准时间,可能导致延迟时间为负数。如果时钟晚于标准时间,可能导致延迟。
在未开启 DDL 同步的情况下,如果您变更目标端的唯一索引,需要重新启动数据迁移任务,否则可能存在数据不一致的问题。
请确认数据迁移对 DECIMAL、FLOAT、DATETIME 等列类型的迁移精度是否符合预期。如果目标端字段类型的精度小于源端字段类型的精度,则可能发生截断现象,导致源端和目标端的数据不一致。
在源端为 OceanBase 数据库并开启 DDL 同步的数据迁移任务中,如果源端库表发生重命名(RENAME)操作,建议您重新启动任务,避免增量同步丢失数据。
如果源端和目标端的表结构不完全一致,可能会出现数据不一致的情况。目前已知场景如下:
用户手动创建表结构时,因超出数据迁移的支持范围,可能产生隐式的转换问题导致源端和目标端列的类型不一致。
目标端的数据长度小于源端的数据长度时,可能出现数据截断的情况,导致源端和目标端的数据不一致。
如果新建数据迁移任务时,您仅配置了 增量同步,数据迁移要求源端数据库的本地增量日志保存 48 小时以上。
如果新建数据迁移任务时,您配置了 全量迁移 + 增量同步,数据迁移要求源端数据库的本地增量日志至少保留 7 天以上。否则数据迁移可能因为无法获取增量日志导致数据迁移任务失败,甚至导致源端和目标端数据不一致。
如果以 OceanBase 数据库为源端做增量同步,数据库表对象中包含 UDT 列,增量同步任务可能因不支持 UDT 列而异常。
支持的源端和目标端实例类型
| 云厂商 | 源端 | 目标端 |
|---|---|---|
| AWS | OceanBase MySQL Compatible(事务型) | Aurora MySQL |
| AWS | OceanBase MySQL Compatible(事务型) | RDS MySQL |
| AWS | OceanBase MySQL Compatible(事务型) | 自建 MySQL |
| 华为云 | OceanBase MySQL Compatible(事务型) | RDS MySQL |
| 华为云 | OceanBase MySQL Compatible(事务型) | 自建 MySQL |
| 腾讯云 | OceanBase MySQL Compatible事务型) | TencentDB for MySQL |
| 腾讯云 | OceanBase MySQL Compatible(事务型) | 自建 MySQL |
| 阿里云 | OceanBase MySQL Compatible(事务型) | RDS MySQL |
| 阿里云 | OceanBase MySQL Compatible(事务型) | PolarDB MySQL |
| 阿里云 | OceanBase MySQL Compatible(事务型) | 自建 MySQL |
数据类型映射
| OceanBase 数据库 MySQL 兼容模式 | MySQL 数据库 |
|---|---|
| INTEGER | INTEGER |
| TINYINT | TINYINT |
| SMALLINT | SAMLLINT |
| MEDIUMINT | MEDIUMINT |
| BIGINT | BIGINT |
| FLOAT | FLOAT |
| DOUBLE | DOUBLE |
| REAL | REAL |
| DECIMAL | DECIMAL |
| NUMERIC | NUMERIC |
| BOOL | TINYINT(1) |
| DATE | DATE |
| DATETIME | DATETIME |
| TIMESTAMP | TIMESTAMP |
| TIME | TIME |
| YEAR | YEAR |
| CHAR | CHAR |
| VARCHAR | VARCHAR TEXT (> 65535 bytes) |
| BLOB | BLOB |
| TEXT | TEXT |
| BINARY | BINARY |
| VARBINARY | VARBINARY |
| BIT | BIT |
| ENUM | ENUM |
| SET | SET |
操作步骤
新建数据迁移任务。

登录 OB Cloud 云数据库控制台。
在左侧导航栏,单击 数据服务 > 数据迁移。
在 数据迁移 页面,单击 数据迁移 页签。
在 数据迁移 页签,单击右上角的 新建迁移任务。
在编辑任务名称文本框中,输入自定义的迁移任务名称。
建议使用中文、数字和字母的组合。名称中不能包含空格,长度不能超过 64 个字符。
在 配置源和目标端 页面,配置各项参数。
在 源端 区域,配置各项参数。
如果您需要引用已创建且保存的数据源,可以单击 源端 右侧的 引用数据源,从下拉列表中选择目标数据源。选择完成后,源端区域的各项配置会自动填充。如果您需要将当前配置保存为新数据源,请单击 源端 区域右上角的 保存 图标。
您也可以在 引用数据源 下拉列表中单击 管理数据源,进入 数据源 页面查看、管理数据源。该页面将不同类型的数据源进行统一管理,详情请参见 数据源 模块的文档。
参数 描述 云厂商 目前支持 AWS、华为云、阿里云 和 腾讯云。 数据库类型 选择源端为 OceanBase MySQL Compatible。 实例类型 包括 集群实例(事务型) 和 自建数据库,目前仅支持迁移 集群实例(事务型) 的数据至 MySQL 数据库。 地域 选择源端数据库所在地域。 连接类型 包括 终端节点 和 公网连接。 连接信息 仅选择实例类型为自建数据库时,会显示该参数。 - 选择 连接类型 为 终端节点 时,请输入终端节点服务名称。
- 选择 连接类型 为 公网连接 时,请输入数据库宿主机的 IP 和端口号。
实例 OceanBase 数据库 MySQL 兼容模式租户所在实例的 ID 或名称。您可以在 实例列表 页面,查看目标实例的 ID 或名称。 说明
云厂商为阿里云时,还支持选择跨账号授权的阿里云主账号实例,详情请参见阿里云账号授权。
租户 OceanBase 数据库 MySQL 兼容模式租户的 ID 或名称。您可以在 实例列表 页面,展开目标实例,查看该实例下目标租户的 ID 或名称。 数据库账号 用于数据迁移的 OceanBase 数据库 MySQL 兼容模式租户的用户名称。 密码 数据库用户的密码。 实例类型为 自建数据库 时,如果您需要进行结构迁移和增量同步,请在 高级设置 区域配置各项参数。

如果您需要在 选择类型和对象 步骤选择 结构迁移 或 增量同步,请开启 sys 租户账号,并配置下述参数。
参数 描述 sys 账号 sys 用户的名称。该用户主要用于读取 OceanBase 数据库增量日志和数据库对象结构信息,请在业务集群 sys 租户下创建。 密码 sys 用户的密码。 如果您需要在 选择类型和对象 步骤选择 增量同步,请开启 OBLogProxy,并填写 OBLogProxy 连接信息。
注意
同时开启 sys 租户账号和 OBLogProxy,才支持进行增量同步。
OBLogProxy 连接信息 是 OceanBase 数据库增量日志代理服务,以服务的形式,提供实时增量项目介入和管理能力,方便应用介入 Oceanbase 数据库增量日志。同时,能够解决网络隔离的情况下,订阅增量日志的需求。格式为
OBLogProxy IP:OBLogProxy Port。
在 目标端 区域,配置各项参数。
如果您需要引用已创建且保存的数据源,可以单击 目标端 右侧的 引用数据源,从下拉列表中选择目标数据源。选择完成后,目标端区域的各项配置会自动填充。如果您需要将当前配置保存为新数据源,请单击 目标端 区域右上角的 保存 图标。
您也可以在 引用数据源 下拉列表中单击 管理数据源,进入 数据源 页面查看、管理数据源。该页面将不同类型的数据源进行统一管理,详情请参见 数据源 模块的文档。
参数 描述 云厂商 目前支持 AWS、华为云、阿里云 和 腾讯云。您可以选择和源端相同的云厂商,也可以跨云厂商进行数据迁移。 说明
目前默认不开放跨云厂商数据迁移功能。如需使用该功能,请联系 OB Cloud 技术支持人员。
数据库类型 选择目标端的数据库类型为 MySQL。 实例类型 - 选择 云厂商 为 AWS 时,实例类型包括 Aurora MySQL、RDS MySQL 和 自建 MySQL。
- 选择 云厂商 为 华为云 时,实例类型包括 RDS MySQL 和 自建 MySQL。
- 选择 云厂商 为 阿里云 时,实例类型包括 RDS MySQL、PolarDB MySQL 和 自建 MySQL。
- 选择 云厂商 为 腾讯云 时,实例类型包括 TencentDB for MySQL 和 自建 MySQL。
地域 选择目标端数据库所在地域。 连接类型 包括 终端节点 和 公网连接。 连接信息 - 选择 连接类型 为 终端节点 时,请输入终端节点服务名称。
- 选择 连接类型 为 公网连接 时,请输入数据库宿主机的 IP 和端口号。
数据库账号 用于数据迁移的 MySQL 数据库的用户名称。 密码 数据库用户的密码。
单击 测试连接并进入下一步。
如果您未接受终端节点连接请求,将无法通过测试连接,请根据弹出框的提示进行操作。
选择 云厂商 为 AWS 时,您需要进入 AWS 控制台对收到的终端节点连接请求进行 接受终端节点连接请求 操作。
选择 云厂商 为 华为云 时,您需要进入 连接管理 页签,接受连接审批。详情请参见 管理终端节点服务的连接审批。
选择 云厂商 为 腾讯云 时,您需要进入 终端节点 页签,接受终端节点的状态连接请求。详情请参见 管理终端节点连接。
在 选择类型和对象 页面,配置各项参数。
在 同步拓扑 区域,选择 单向同步。
数据迁移支持 单向同步 和 双向同步。本文为您介绍单向同步的操作,双向同步的详情请参见 配置双向同步任务。
在 迁移类型 区域,选择当前数据迁移任务的迁移类型。
迁移类型 包括 结构迁移、全量迁移 和 增量同步 。
参数 描述 结构迁移 结构迁移需要自行定义字符集的映射关系,数据迁移只会将源库的数据(结构)复制一份至目标数据库,不会对源数据(结构)造成影响。OceanBase 数据库 MySQL 兼容模式租户至 MySQL 数据库的结构迁移支持自动创建目标端不存在的库。 全量迁移 全量迁移任务开始后,数据迁移服务会迁移源库表的存量数据至目标端数据库对应的表中。 增量同步 增量同步任务开始后,数据迁移会同步源端数据库发生变化的数据(新增、修改或删除)至目标端数据库对应的表中。增量同步 包括 DML 同步 和 DDL 同步,您可以根据需求进行自定义配置。详情请参见 自定义配置 DML/DDL。 在 选择迁移对象 区域,配置选择迁移对象的方式。
您可以通过 指定对象 和 匹配规则 两种方式选择迁移对象。

在 选择迁移范围 区域,选择需要迁移的对象。
选择 指定对象 时,数据迁移支持 库表迁移 和 整库迁移。库表迁移支持选择一个或多个库中的表、视图作为迁移对象,整库迁移支持选择整个数据库作为迁移对象。如果某个库选择了库表迁移,则该库不再支持整库迁移。如果某个库选择了整库迁移,则该库不再支持库表迁移。
选择 库表迁移 或 整库迁移 方式后,在左侧选中需要迁移的对象,单击 >,将其添加至右侧列表中。
数据迁移支持通过文本导入对象,并支持对目标端对象进行重命名、设置行过滤、查看列信息,以及移除单个或全部迁移对象等操作。

说明
当您选择 整库迁移 时:
右侧列表仅展示库名,不支持展示具体的对象。
如果您选择了 增量同步-DDL 同步 迁移类型,则源端新增表支持同步至目标端。
操作 描述 导入对象 在选择区域的右侧列表中,单击右上角的 导入对象。详情请参见 导入迁移对象。 重命名 数据迁移支持重命名迁移对象的名称,详情请参见 数据库库表重命名。 行过滤 数据迁移支持 WHERE条件实现行过滤,详情请参见 SQL 条件过滤数据。您还可以在 查看列 区域,查看迁移对象的列信息。移除/清除全部 数据迁移支持在数据映射时,对暂时选中至目标端的单个或多个对象进行移除操作。 - 移除单个迁移对象
在选择区域的右侧列表中,单击目标对象后的 移除 图标,即可移除该迁移对象。 - 移除全部迁移对象
在选择区域的右侧列表中,单击右上角的 清除全部。在对话框中,单击 确定,即可移除全部迁移对象。
- 选择 匹配规则,详情请参见 配置库到库匹配规则。
单击 下一步,在 迁移选项 页面,配置各项参数。
全量迁移
在 选择类型和对象 页面,选中 单向同步 > 全量迁移,才会显示下述参数。
参数 描述 读取并发配置 该参数用于配置全量迁移阶段从源端读取数据的并发数,最大限制为 512 并发数过高可能会造成源端压力过大,影响业务。 写入并发配置 该参数用于配置全量迁移阶段往目标端写入数据的并发数,最大限制为 512。并发数过高可能会造成目标端压力过大,影响业务。 是否限制全量迁移速率 您可以根据实际需求决定是否开启全量迁移速率限制。如果开启,请设置源端读取 RPS(全量迁移阶段每秒最多可以从源端读取行数的最大限制)、源端读取 BPS(全量迁移阶段每秒最多可以从源端读取流量的最大限制)、目标端写入 RPS(全量迁移阶段每秒最多可以往目标端写入行数的最大限制)和目标端写入 BPS(全量迁移阶段每秒最多可以往目标端写入流量的最大限制)。 说明
此处设置的 RPS 和 BPS 仅作为限速限流能力,全量迁移实际可以达到的性能受限于源端、目标端、实例规格配置等因素的影响。
目标端表对象存在记录时处理策略 处理策略包括 停止迁移 和 忽略: - 选择 停止迁移,当目标端表对象存在数据时,全量迁移会报错不允许迁移,请处理好目标端数据后再继续迁移。
注意
如果出错后单击恢复,数据迁移将忽略该配置选项,继续迁移表数据,请谨慎操作。
- 选择 忽略,当目标端表对象存在数据时,如果原数据与写入数据冲突,数据迁移采用将冲突数据记录日志,保留原数据不变的策略进行数据写入。
是否允许索引后置 索引后置功能能够缩短全量迁移耗时,您可以在此处设置是否允许全量数据迁移完成后再创建索引。选择索引后置的注意事项,请参见表格下方的说明。 注意
在 选择迁移类型 页面同时选中 结构迁移 和 全量迁移,才支持设置该选项。
- 仅非唯一键索引支持后置创建。
允许索引后置的情况下,建议您根据 OceanBase 数据库的硬件条件和当前业务流量情况,通过黑屏客户端工具调整以下业务租户参数。
// 文件内存缓冲区限制 ALTER SYSTEM SET _temporary_file_io_area_size = '10' tenant = 'xxx'; // OceanBase 数据库 V4.x 关闭限流 ALTER SYSTEM SET sys_bkgd_net_percentage = 100;- 选择 停止迁移,当目标端表对象存在数据时,全量迁移会报错不允许迁移,请处理好目标端数据后再继续迁移。
增量同步
在 选择类型和对象 页面,选中 单向同步 > 增量同步,才会显示下述参数。
参数 描述 写入并发配置 该参数用于配置增量同步阶段往目标端写入数据的并发数,最大限制为 512。并发数过高可能会造成目标端压力过大,影响业务。 是否限制增量迁移速率 您可以根据实际需求决定是否开启增量同步速率限制。如果开启,请设置目标端写入 RPS(增量同步阶段每秒最多可以同步至目标端的数据行数的最大值限制)和目标端写入 BPS(增量同步阶段每秒最多可以同步至目标端的流量的最大值限制)。 说明
此处设置的 RPS 和 BPS 仅作为限速限流能力,增量同步实际可以达到的性能受限于源端、目标端、实例规格配置等因素的影响。
增量同步起始位点 - 如果选择迁移类型时已选择 全量迁移,则不显示该参数。
- 如果选择迁移类型时未选择 全量迁移,但选择了 增量同步,请在此处指定迁移某个时间节点之后的数据,默认为当前系统时间。详情请参见 设置增量同步位点。
单击 下一步,系统对数据迁移任务进行预检查。
在 预检查 环节,数据迁移会检查数据库用户的读写权限、数据库的网络连接等是否符合要求。全部检查任务均通过后才能启动数据迁移任务。如果预检查报错:
您可以排查并处理问题后,重新执行预检查,直至预检查成功。
您也可以单击失败预检查项操作列中的 跳过,会弹出对话框提示您跳过本操作的具体影响,确认可以跳过后,请单击对话框中的 确定。
预检查成功后,单击 购买,前往 购买数据迁移实例 页面进行购买。
购买成功后,即可启动数据迁移任务。购买详情请参见 购买数据迁移实例。如果您暂时无需购买数据迁移实例,请单击 保存,跳转至数据迁移任务的详情页面,您后续可以根据需要进行手动购买。
您可以单击数据迁移详情页面右上角的 配置校验任务,对比源端数据库和目标端数据库之间的数据差异。详情请参见 新建数据校验任务。
数据迁移服务支持在数据迁移任务运行过程中修改迁移对象,详情请参见 查看和修改迁移对象。数据迁移任务启动后,会根据选择的迁移类型依次执行,详情请参见 查看数据迁移任务的详情 中《查看迁移详情》模块的内容。