您可以新建从 OceanBase 数据库 MySQL 兼容模式至 TiDB 数据库的数据迁移任务,无缝迁移源端数据库中的增量数据至目标端数据库。
注意
如果数据迁移任务长期处于非活跃状态(任务状态为 失败、已暂停 或 已完成),受增量日志保留时长等影响,任务可能无法恢复。数据迁移将主动释放处于非活跃状态超过 7 天的任务,以回收相关资源,建议您为任务配置告警并及时处理任务相关异常。
前提条件
- 已创建源端 OceanBase 数据库的集群和租户。
- 已创建目标端数据库实例。
- 已为源端和目标端创建专用于数据迁移的数据库用户,并赋予其相关权限。
使用限制
-
仅项目角色为 项目所有者、项目管理员 或 数据服务管理员 的用户支持新建数据迁移任务。
-
源端数据库的操作限制
-
请勿在结构迁移和全量迁移阶段执行库或表结构变更的 DDL 操作,否则可能造成数据迁移任务中断。
-
目前数据迁移支持 TiDB 数据库 V4.x、V5.4、V6.x 和 V7.x,OceanBase 数据库 MySQL 兼容模式 V2.x、V3.x 和 V4.x。
-
迁移 OceanBase 数据库 MySQL 兼容模式的数据至 TiDB 数据库时,仅支持增量同步,并且不支持同步 DDL。
-
数据迁移服务仅支持迁移库名、表名和列名为 ASCII 码且不包含特殊字符(包括 .|"'`()=;/& 和换行)的对象。
-
数据迁移服务仅支持 TiCDC Open Protocol,不支持其它协议。如果您使用不支持的协议,会导致 JDBC-Connector 异常,报空指针的错误。
-
数据迁移服务不支持目标端存在触发器(Trigger)。如果存在触发器,可能导致数据迁移失败。
注意事项
-
如果源端字符集为 UTF-8,建议目标端使用兼容源端的字符集(例如,UTF-8、UTF-16 等),避免因字符集不兼容导致目标端出现乱码等问题。
-
如果您要修改目标端的唯一索引,需要重启数据迁移任务,否则可能存在数据不一致的问题。
-
节点之间的时钟不同步,或者电脑终端和服务器之间的时钟不同步,均可能导致增量同步的延迟时间不准确。
-
例如,如果时钟早于标准时间,可能导致延迟时间为负数。如果时钟晚于标准时间,可能导致延迟。
-
请确认数据迁移服务对 DECIMAL、FLOAT、DATETIME 等列类型的迁移精度是否符合预期。如果目标端字段类型的精度小于源端字段类型的精度,则可能发生截断现象,导致源端和目标端的数据不一致。
-
新建数据迁移任务时,您仅配置了 增量同步,数据迁移要求源端数据库的本地增量日志保存 48 小时以上。
支持的源端和目标端实例类型
下表中,OceanBase MySQL Compatible 支持的实例类型包括 集群实例(事务型) 和 自建数据库。
| 云厂商 | 源端 | 目标端 |
|---|---|---|
| AWS | OceanBase MySQL Compatible | 自建 TiDB |
| 华为云 | OceanBase MySQL Compatible | 自建 TiDB |
| 腾讯云 | OceanBase MySQL Compatible | 自建 TiDB |
| 阿里云 | OceanBase MySQL Compatible | 自建 TiDB |
数据类型映射
| OceanBase 数据库 MySQL 兼容模式 | TiDB 数据库 |
|---|---|
| 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。 实例类型 包括 集群实例(事务型) 和 自建数据库。 地域 选择源端数据库所在地域。 连接类型 包括 终端节点 和 公网连接。 连接信息 仅选择实例类型为自建数据库时,会显示该参数。 实例 OceanBase 数据库 MySQL 兼容模式租户所在实例的 ID 或名称。您可以在 实例列表 页面,查看目标实例的 ID 或名称。 租户 OceanBase 数据库 MySQL 兼容模式租户的 ID 或名称。您可以在 实例列表 页面,展开目标实例,查看该实例下目标租户的 ID 或名称。 数据库账号 用于数据迁移的 OceanBase 数据库 MySQL 兼容模式租户的用户名称。 密码 数据库用户的密码。 选择 实例类型 为 自建数据库 时,您还可以根据实际情况决定是否进行高级设置。
注意
如果您新建的迁移任务需要进行增量同步,请同时开启 sys 租户账号和增量日志代理服务。
参数 描述 sys 租户账号 开启 sys 租户账号后,您需要输入 sys 账号和密码。 增量日志代理服务 开启增量日志代理服务后,您需要填写 OBLogProxy 连接信息。该参数是 OceanBase 数据库增量日志代理服务,以服务的形式,提供实时增量项目介入和管理能力,方便应用介入 Oceanbase 数据库增量日志。同时,能够解决网络隔离的情况下,订阅增量日志的需求。格式为 OBLogProxy IP:OBLogProxy Port。 -
在 配置源和目标端 步骤,配置 目标端 区域的各项参数。
如果您需要引用已创建且保存的数据源,可以单击 目标端 右侧的 引用数据源,从下拉列表中选择目标数据源。选择完成后,目标端区域的各项配置会自动填充。如果您需要将当前配置保存为新数据源,请单击 目标端 区域右上角的 保存 图标。
您也可以在 引用数据源 下拉列表中单击 管理数据源,进入 数据源 页面查看、管理数据源。该页面将不同类型的数据源进行统一管理,详情请参见 数据源 模块的文档。
参数 描述 云厂商 目前支持 AWS、华为云、腾讯云 和 阿里云。您可以选择和源端相同的云厂商,也可以跨云厂商进行数据迁移。 数据库类型 选择目标端的数据库类型为 TiDB。 实例类型 目前仅支持 自建 TiDB。 地域 选择目标端数据库所在地域。 连接类型 包括 终端节点 和 公网连接。 连接信息 - 选择 连接类型 为 终端节点 时,请输入终端节点服务名称。
- 选择 连接类型 为 公网连接 时,请输入数据库宿主机的 IP 和端口号。
数据库账号 用于数据迁移的 TiDB 数据库的用户名称。 密码 数据库用户的密码。
单击 测试连接并进入下一步。
在 选择类型和对象 页面,配置各项参数。
说明
目前迁移 OceanBase 数据库 MySQL 兼容模式的数据至 TiDB 数据库时,仅支持单向同步。
-
在 迁移类型 区域,选择当前数据迁移任务的迁移类型。目前仅支持 增量同步 支持 DML 同步
-
在 选择迁移对象 区域,配置选择迁移对象的方式。您可以通过 指定对象 和 匹配规则 两种方式选择迁移对象。

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

操作 描述 导入对象 在选择区域的右侧列表中,单击右上角的 导入对象。 重命名 数据迁移支持重命名迁移对象的名称。 行过滤 数据迁移支持 WHERE条件实现行过滤。您还可以在 查看列 区域,查看迁移对象的列信息。移除/清除全部 数据迁移支持在数据映射时,对暂时选中至目标端的单个或多个对象进行移除操作。 -
选择 匹配规则。
-
单击 下一步。在 迁移选项 页面,配置增量同步的各项参数。
| 参数 | 描述 |
|---|---|
| 写入并发配置 | 该参数用于配置增量同步阶段往目标端写入数据的并发数,最大限制为 512。并发数过高可能会造成目标端压力过大,影响业务。 |
| 是否限制增量迁移速率 | 您可以根据实际需求决定是否开启增量同步速率限制。如果开启,请设置 RPS(增量同步阶段每秒最多可以同步至目标端的数据行数的最大值限制)和 BPS(增量同步阶段每秒最多可以同步至目标端的数据量的最大值限制)。 |
| 增量同步起始位点 |
|
单击 预检查,系统对数据迁移任务进行预检查。
在 预检查 环节,数据迁移会检查数据库用户的读写权限、数据库的网络连接等是否符合要求。全部检查任务均通过后才能启动数据迁移任务。如果预检查报错:
- 您可以排查并处理问题后,重新执行预检查,直至预检查成功。
- 您也可以单击失败预检查项操作列中的 跳过,会弹出对话框提示您跳过本操作的具体影响,确认可以跳过后,请单击对话框中的 确定。