帮你快速理解、总结文档立即下载
文档中心>实践教程>数据传输服务>使用 DTS 将 OceanBase 云数据库迁移至 TDSQL Boundless

使用 DTS 将 OceanBase 云数据库迁移至 TDSQL Boundless

最近更新时间:2026-08-27 17:50:31
我的收藏

业务场景

在数据库整合、跨内核演进或多云迁移的场景中,用户常需要将云上托管的 OceanBase 数据库(下文简称 OB Cloud)整体搬迁到腾讯云 TDSQL Boundless。这类搬迁通常要求:迁移过程中源库业务尽量不停机、存量数据与增量数据都完整迁移、割接前可验证两端数据一致(含 DML 与 DDL)。
数据传输服务 DTS(Data Transfer Service)提供的数据迁移能力,支持“结构迁移 + 全量迁移 + 增量同步”的一站式链路,并配合数据一致性校验,帮助用户在最小化业务影响的前提下完成从 OB Cloud 到 TDSQL Boundless 的平滑搬迁。
本文以 OceanBase 云数据库(MySQL 模式租户)迁移至 TDSQL Boundless 为例,介绍完整的迁移配置、验证与割接流程,以及迁移过程中的常见问题与处理方法。

背景信息

DTS 数据迁移原理

DTS 数据迁移以整体数据库搬迁为目的,属于短期的一次性任务,迁移完成后由用户手动割接、将业务对接到新的数据库上。
以 MySQL 为例,数据迁移过程分为以下阶段:
1. 结构迁移:迁移源库的库、表结构,在目标库中创建与源库一致的库表结构。
2. 全量数据迁移:将源库中除系统库表外的存量数据一次性迁移至目标库。
3. 增量数据迁移:全量迁移启动的同时,DTS 对源库增量日志的接管也随之启动,源库产生的增量变更会被解析并回放到目标库,从而保持源库与目标库的数据一致。
4. 一致性校验:对目标库数据与源库迁移数据进行对比,辅助用户在割接前验证迁移结果。
在 MySQL、TDSQL 等链路的全量迁移阶段,DTS 采用无锁迁移方式,无需对源库加全局锁(FTWRL),仅对无主键的表加表锁,从而最小化迁移对源库业务的影响。

OB Cloud 到 TDSQL Boundless 的迁移链路

OB Cloud 是托管形态的 OceanBase 服务,与自建 OceanBase 的关键差异在于:无需用户手动配置代理层的入口路由,DTS 所需的增量日志(binlog)能力由 OB Cloud 控制台的 binlog 服务开关统一提供。开启 binlog 服务后,OB Cloud 即可对 DTS 表现为一个标准 MySQL 源。整体链路如下:
源端:OB Cloud 实例,通过公网连接方式对外提供访问,也支持对等连接、私有网络等方式。
传输层:腾讯云 DTS,完成结构迁移、全量迁移、增量同步与一致性校验。
目标端:TDSQL Boundless 实例(MySQL 8.0 内核)。
说明:
OB Cloud 提供公网连接、对等连接、私有网络等多种连接方式。本文以公网连接为例,实际请根据网络规划选择,并确保 DTS 与源、目标实例之间网络互通。

前提条件

已创建 OB Cloud 源实例,且实例状态为运行中,待迁移的业务租户为 MySQL 兼容模式
已获取 OB Cloud 实例的连接方式(本文以公网连接为例),并确保 DTS 可访问该连接地址。
已开通 OB Cloud 实例的 binlog 服务(用于提供增量同步所需的增量日志)。
已购买并创建目标端 TDSQL Boundless 实例,且实例状态为运行中
已在 OB Cloud 侧准备好用于迁移的账号,且具备迁移所需的读取与复制相关权限。
已规划目标端磁盘容量:建议不低于源端待迁移数据量的 1.2 倍。
源端增量日志保留时间建议不少于 3 天,避免任务暂停后因日志被清理而无法续传。

操作流程概要

本文迁移流程分为五个阶段,如您已完成部分步骤可直接跳到对应环节。
1. 阶段一:准备源端与目标端实例——确认 OB Cloud 与 TDSQL Boundless 实例,并获取连接方式。
2. 阶段二:创建 DTS 迁移任务——配置源库、目标库并完成一致性校验与迁移前校验。
3. 阶段三:全量迁移监控——观察结构初始化与全量数据迁移进度。
4. 阶段四:增量同步验证——验证 DML 与 DDL 是否正常同步。
5. 阶段五:业务割接——数据验证无误后完成业务切换。

操作步骤

步骤一:准备源端与目标端实例

1. 登录 OB Cloud 控制台,确认待迁移实例状态为运行中,并获取实例的连接方式。OB Cloud 支持以下连接方式,请根据网络规划选择:
公网连接:DTS 通过公网访问源实例,适用于快速验证或跨网络环境,需注意公网带宽与安全性。
对等连接:源实例与 DTS 所在网络通过对等连接打通,适用于同一云环境内的私网互通。
私有网络:源实例与目标网络处于可互通的私有网络,适用于对网络隔离与稳定性要求较高的场景。
2. 在 OB Cloud 控制台为待迁移实例开启 binlog 服务,以提供增量同步所需的增量日志。
3. 确认目标端 TDSQL Boundless 实例状态为运行中,并记录其连接信息与写入账号,供后续 DTS 目标库配置使用。

步骤二:创建 DTS 迁移任务

1. 登录 DTS 控制台,在左侧导航栏选择数据迁移,单击新建迁移任务
2. 在新建迁移任务页面,选择源实例类型与所属地域、目标实例类型与所属地域、任务规格等,然后单击立即购买
源实例类型选择 MySQL(OB Cloud 开启 binlog 服务后对 DTS 表现为标准 MySQL 源,因此按 MySQL 接入即可)。
目标实例类型选择 TDSQL Boundless。
3. 在设置源和目标数据库页面,完成任务设置、源库设置和目标库设置,单击保存
源库设置:
主机地址:OB Cloud 实例的连接地址(对应步骤一选择的连接方式)。
端口:OB Cloud 实例的连接端口。
账号:业务租户内具备迁移权限的账号。
目标库设置:选择已创建的 TDSQL Boundless 目标实例,并填写写入账号。
4. 在设置迁移选项及选择迁移对象页面,设置迁移类型和迁移对象,单击下一步
迁移类型选择全量 + 增量迁移
迁移对象选择整个实例或指定对象。相互关联的数据对象(如视图引用的表、外键关联表等)需同时选择,否则会导致迁移失败。
5. 在设置一致性校验页面,勾选开启数据一致性校验,配置参数后,单击下一步
6. 在校验任务页面,完成迁移前校验工作。DTS 会自动执行环境校验,常见校验项如下:
源实例权限检查:校验迁移账号是否具备读取与复制相关权限。
实例参数检查:校验源、目标实例的关键参数是否满足迁移要求。
binlog 参数检查:校验源端是否可正常提供增量日志(binlog),这是增量同步的前提。
警告项检查:提示不影响迁移启动、但需关注的项(如大小写敏感设置差异等)。
7. 校验全部通过后,单击立即启动
说明:
未开启 binlog 服务时,全量 + 增量迁移的增量阶段无法进行。请务必在启动任务前完成 binlog 服务开启并通过校验。

步骤三:全量迁移监控

1. 任务启动后进入准备运行状态,约 1 至 2 分钟后正式开始迁移。
2. 在 DTS 控制台任务详情页查看迁移进度:迁移会先进行结构初始化,再进行全量数据迁移,进度按表统计已迁移行数。
说明:
选择全量 + 增量迁移时,全量阶段请勿向源库写入本不属于全量快照范围的新数据,否则可能导致全量数据不一致。此外,迁移过程中请勿修改源端或目标端的账号密码、端口,也不要在源端清理增量日志,否则会导致 DTS 连接断开或增量同步无法续传。
3. 全量迁移完成后,任务自动进入增量同步阶段。

步骤四:增量同步验证

全量迁移完成后,任务自动进入增量同步阶段。建议从 DMLDDL 两个维度验证增量链路是否正常。
1. 验证 DML 同步。在源端 OB Cloud 依次执行 INSERT、UPDATE、DELETE 及事务回滚操作,并在目标端 TDSQL Boundless 核对结果:
INSERT:源端写入一条带唯一标记的数据,目标端应能查询到该数据。
UPDATE:源端更新某条数据,目标端对应记录应同步更新。
DELETE:源端删除某条数据,目标端对应记录应同步删除。
事务回滚:源端在事务内写入数据后回滚,目标端不应出现被回滚的数据。
示例(在源端写入、目标端查询):
-- 源端 OB Cloud 执行
INSERT INTO <业务库>.<测试表> VALUES (99999, CONCAT('incr_verify_', DATE_FORMAT(NOW(),'%H%i%s')));

-- 等待约 15 至 30 秒后,在目标端 TDSQL Boundless 执行
SELECT * FROM <业务库>.<测试表> WHERE id = 99999;
2. 验证 DDL 同步。在源端 OB Cloud 依次执行结构变更,并在目标端 TDSQL Boundless 核对结构是否同步:
CREATE TABLE:源端新建表,目标端应同步出现该表。
ALTER TABLE:源端变更表结构(如新增列、修改列),目标端表结构应同步变更。
DROP TABLE:源端删除表,目标端对应表应同步删除。
说明:
DDL 同步验证用于确认迁移期间源端的结构变更能够正确回放到目标端。若业务在迁移窗口内存在频繁 DDL,建议在正式割接前完成 DDL 场景的专项验证。

步骤五:业务割接

1. 登录 DTS 控制台,等待数据迁移任务的迁移步骤显示为同步增量,并且目标与源库数据差距为 0KB、目标与源库时间延迟为 0 秒。
2. 暂停源库业务,停止新的数据写入。
3. 再次查看迁移任务,等待目标与源库数据差距为 0KB、目标与源库时间延迟为 0 秒,并保持 1 分钟以上,单击完成,结束增量迁移任务。
4. 验证源库和目标库的数据一致后,确定割接时机,将业务切换到 TDSQL Boundless,并验证业务功能是否正常。
说明:
割接前请务必通过一致性校验和业务演练完成完整验证(含 DML 与 DDL),回滚成本较高。

常见问题

Q1:DTS 校验提示 binlog 参数检查未通过?

这是因为 OB Cloud 侧未开启 binlog 服务,DTS 无法获取增量日志位点。请在 OB Cloud 控制台为实例开启 binlog 服务后,返回 DTS 控制台重新发起校验,通过后再启动任务。

Q2:DTS 校验提示源实例权限不足?

由于迁移账号缺少读取或复制相关权限。为迁移账号补充相应权限后,重新发起校验即可。

Q3:DTS 校验的“警告项”需要处理吗?

警告项一般不阻断迁移启动,但可能影响迁移效果或目标端行为(如源、目标端大小写敏感设置差异)。建议逐项确认,对确有影响的项按提示调整后再启动任务。

Q4:源实例应该使用哪种连接方式?

OB Cloud 支持公网连接、对等连接、私有网络等方式。快速验证可使用公网连接;正式迁移建议优先使用对等连接或私有网络,以获得更稳定的网络质量与更好的隔离性。

Q5:增量同步不工作,源端写数据目标端一直看不到?

请先在控制台确认任务处于“增量同步中”状态并查看延迟;确认 OB Cloud 的 binlog 服务处于开启状态、增量日志正常产生;再对比 DTS 当前消费位点与源端位点是否推进。

Q6:DDL 变更没有同步到目标端怎么办?

请确认迁移类型为全量 + 增量迁移且任务处于增量同步阶段;相互关联的对象需在迁移对象中一并选择。若仍未同步,可结合任务详情与一致性校验定位具体对象。

Q7:为什么全量迁移前后数据大小不一致?

这属于正常现象。源库与目标库的碎片空间不同,源库可能存在空洞数据,因此迁移后目标库表存储空间可能小于源库。建议迁移完成后使用数据一致性校验核对源库与目标库内容是否一致。