ITPub博客

首页 > 数据库 > MySQL > MySQL 到 OceanBase MySQL 容灾链路搭建全流程

MySQL 到 OceanBase MySQL 容灾链路搭建全流程

原创 MySQL 作者:数据库小组 时间:2026-11-11 16:29:52 0 删除 编辑

在 MySQL 向 OceanBase(MySQL 租户)迁移与容灾的场景中,如何在不中断业务的情况下完成数据同步,是许多团队关心的问题。本教程基于 NineData 数据复制控制台的完整实操录屏,手把手演示从创建复制任务、选择源端与目标端实例、配置复制类型,到预检查、结构复制、全量复制、增量复制,以及最后的数据一致性对比的全流程。

图1

整个流程图形化操作、无需编写脚本,任务创建完成后即可持续将源端 MySQL 的存量数据与增量变更实时同步到目标端 OceanBase,并支持任务启停、监控告警与数据校验,适合 DBA 与运维人员快速上手。

一、方案与能力概览

• 三种复制类型: 支持结构复制、全量复制、增量复制自由组合,一次配置完成表结构创建、历史数据初始化与实时变更同步。

• 灵活的冲突策略: 可按目标端现有对象与数据,分别设置同名对象、存量数据、增量冲突的处理策略。

• 完整预检查: 自动检查数据源连接、账号权限以及增量复制所需条件,问题提前暴露、提前处理。

• 全链路可观测: 结构/全量/增量分页签展示进度,配合监控面板、告警策略与同步日志,链路状态一目了然。

• 数据一致性对比: 增量追平后可发起全量、快速或行数对比,差异支持下载文件与生成变更 SQL。

二、前置条件

• 源端 MySQL: 已开启 Binlog(log_bin=ON,binlog_format=ROW),用于同步的账号具备 SELECT、REPLICATION SLAVE、REPLICATION CLIENT 等权限。

• 目标端 OceanBase: 已创建 OceanBase MySQL 租户实例并完成网络连通,同步账号具备目标库的建库建表与读写权限。

• NineData 控制台: 已注册 NineData 账号,并将源 MySQL 与目标 OceanBase 实例均添加为数据源。

三、创建复制任务

进入数据复制控制台,点击「创建复制」,填写任务名称,并选择复制类型为「单向复制」。

图2

选择源端与目标端实例

源数据源选择 MySQL 并确认对应实例,目标数据源选择 OceanBase MySQL 及对应实例。

图3

配置复制类型与冲突处理策略

本演示勾选结构、全量和增量复制:先在目标端创建表结构,再初始化历史数据,最后持续同步增量变更。同时根据目标端现有对象和数据,确认同名对象、存量数据及增量冲突的处理策略。

图4

四、选择复制对象与配置映射

在选择复制对象页面,勾选需要同步的库和表,将其加入右侧目标对象列表,然后点击下一步。

图5

进入配置映射页面,核对源表、目标库和目标表名称,确保对象对应关系正确,避免数据落入错误的库表。

图6

五、预检查与问题处理

保存配置后执行预检查,系统会逐项检查数据源连接、账号权限以及增量复制所需条件。本次预检查发现目标库权限、同名对象和无主键表等问题,需要逐项查看。

图7

打开权限检查详情,页面会列出目标账号缺少的权限,应按提示补齐授权;同名对象详情会列出已存在的目标表,并提供处理策略与名称映射建议。

图8

录屏演示中跳过了三项预检查。需要注意:跳过不代表问题已修复,正式迁移前仍应确认各项告警的影响范围。

六、启动任务与结构、全量复制

进入复制详情后点击启动,任务状态变为运行中,随后自动开始结构复制。结构复制列表展示各表的开始时间、结束时间和状态,右侧提供查看 DDL 入口,可核对目标端建表语句。

图9

全量复制进度

切换到全量复制页签,可查看各表的执行进度、完成记录数和状态,确认历史数据是否全部写入目标端。

图10 图11

七、运行监控与增量复制

打开监控面板,可查看复制吞吐量、读取流量和读写速率等指标。顶部状态显示结构和全量阶段完成后,任务自动进入增量复制,持续将源端变更同步到 OceanBase。

图12

八、数据对比与差异处理

进入数据对比并开启校验。当增量复制追平、无延迟时,即可启动一致性对比。在告警策略中填写名称、确认告警规则和接收人后保存配置,任务异常可及时通知。

图13

对比列表展示源端和目标端的记录数。注意不能只看「已完成」状态就判断数据一致,应结合对比结果确认。

图14

打开表对比详情,可逐行查看差异数据,并支持下载差异文件或生成变更 SQL。生成变更 SQL 后,先核对目标表和影响范围再执行(录屏中仅展示语句,未执行)。

图15

九、结语

回到对比页面可选择重新全量对比,并按需选择全量、快速或行数对比方式;高级配置还支持调整对比并发数、分片、浮点精度和大字段等参数。确认配置后重新启动对比,完成差异处理与验收,整个 MySQL 到 OceanBase 的同步链路即告完成。借助 NineData,从配置、监控到数据校验形成完整闭环,显著降低数据库迁移与容灾建设的门槛。

常见问题 FAQ

Q1: 同步期间源库是否需要停机?

不需要。NineData 先做全量初始化,再通过 Binlog 持续同步增量变更,业务在同步期间可正常读写,实现不停机迁移。

Q2: 预检查告警可以直接跳过吗?

部分告警(如无主键表)可以跳过并继续任务,但跳过不代表问题已修复,可能影响数据一致性或同步性能,正式迁移前应逐项确认影响。

Q3: 目标端已有同名表怎么办?

在冲突策略中可选择忽略、覆盖或报错等处理方式,也可通过名称映射将数据写入其他库表,建议按目标端现状谨慎选择。

Q4: 如何确认数据已经追平?

在增量复制页签观察复制延迟,当延迟稳定为 0 且监控无波动后,再发起数据对比,以对比结果作为最终依据。

Q5: 对比发现差异后如何处理?

可在对比详情中查看差异数据,下载差异文件或生成修复 SQL,核对影响范围后执行修复,再重新对比验证。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049579/viewspace-3188627/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
数据库从业者!分享数据库、运维实战、工具指南、前沿技术等。

注册时间:2026-03-03

  • 博文量
    25
  • 访问量
    22736