首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >巧用 NineData,轻松完成 Oracle 向 SelectDB 迁移同步

巧用 NineData,轻松完成 Oracle 向 SelectDB 迁移同步

原创
作者头像
代码派
发布于 2026-11-13 14:08:06
发布于 2026-11-13 14:08:06
170
举报

SelectDB 兼容 Doris 协议,凭借高并发的实时 OLAP 能力,常被用作 Oracle 业务库的分析侧引擎。如何把 Oracle 的存量数据与持续产生的增量变更稳定同步到 SelectDB?本文基于 NineData 数据复制功能的真实录屏演示,手把手带你完成从创建复制任务、选择复制对象、配置映射、预检查,到启动后查看结构复制、全量复制、增量复制,以及验证增量变更与 DDL 同步结果的全过程,并整理了 Oracle 到 SelectDB 的前置条件、LogMiner 相关配置与常见问题。照着做即可完成一次完整的 Oracle 到 SelectDB 数据迁移同步。

一、NineData Oracle 到 SelectDB 数据复制能力概览

NineData 数据复制支持 Oracle 到 SelectDB 之间的结构复制、全量数据同步和增量数据同步,三种类型可按需组合,本次演示一次性全部勾选:

• 结构复制:把 Oracle 的库表结构转换为 SelectDB 建表语句并在目标端执行,只建表、不搬数据;

• 全量复制:同步所选对象的存量数据,通过智能分片实现行级并发批量写入,完成目标端数据初始化;

• 增量复制:全量完成后,基于 Oracle 重做日志与 LogMiner 持续捕获源端变更,覆盖 INSERT / UPDATE / DELETE 与 DDL。

NineData 会依据源表的主键、唯一键自动为 SelectDB 选择合适的表模型,并推导 Key 与分桶键(Distribute Key)、分桶数与副本数,无需手工编写建表语句或映射脚本。

二、前提条件与使用限制

前提条件

• 已将源数据源(Oracle)与目标数据源(SelectDB)添加至 NineData;目标端不存在同名库表,避免覆盖;

• 源端 Oracle 需运行在 ARCHIVELOG 归档日志模式,归档日志保留时间需覆盖全量初始化与增量启动之间的窗口;

• 开启补充日志(Supplemental Logging,建议开启主键及全列补充日志),并开启 FORCE LOGGING,保证 LogMiner 能完整还原 UPDATE 与无主键表的变更;

• 源端账号需具备 LogMiner 相关权限,如 SELECT ANY DICTIONARY、LOGMINING、SELECT ANY TRANSACTION,以及对复制对象的 SELECT 权限;

• 目标端 SelectDB 账号需具备建库、建表与写入(DML / DDL)权限;待复制的表建议带有主键或唯一键。

使用限制

• Oracle 与 SelectDB 的数据类型存在差异(如 NUMBER、DATE、CLOB 等),启动任务前请在配置映射与预检查结果中确认字段映射、Key 及分桶键符合预期;

• 源端库表名称需符合 SelectDB 命名规则:以字母开头,可包含字母、数字与下划线,不含空格或特殊字符;

• 为保障复制一致性,建议同步表具备主键或唯一约束;无主键表需评估补充日志配置与回放性能;

• 全量初始化会占用源端与目标端一定读写资源,建议在业务低峰期执行,并提前评估两端数据库性能;

• 增量阶段可查看各类型事件计数、DDL 回放详情与读取/复制延迟曲线,确认结构变更已在目标端按相同语义完成。

三、创建 Oracle 到 SelectDB 的数据复制任务(5 步)

步骤 1:配置数据源与目标

登录 NineData 控制台,在左侧导航栏单击数据复制 > 数据复制,单击右上角创建复制。在数据源与目标页签填写便于识别的任务名称,源数据源选择已接入的 Oracle 实例,目标数据源选择 SelectDB 数据源;复制类型同时勾选结构复制、全量复制和增量复制,覆盖完整迁移流程;复制规格与目标库同名对象处理策略按需选择。确认无误后单击下一步。

步骤 2:选择复制对象

在选择复制对象页签,可以选择全部实例复制源库所有内容,也可以选择自定义对象,在源对象列表中勾选需要同步的库和表,单击添加加入右侧目标对象列表,目标端对象自动按同名映射。本次演示勾选了 ORA2SDB_TEST 库下的 T_CUSTOMER、T_DICT、T_ORDER、T_ORDER_ITEM 四张业务表,请仔细核对迁移范围。

步骤 3:配置映射(目标库表、主键与分桶键)

在配置映射页签,源表与目标表默认一一对应,可确认字段级映射以及主键、分桶键(Distribute Key)的设置——NineData 会依据源表键定义自动为 SelectDB 选择合适表模型并推导 Key。如需调整列名或增加数据过滤条件,也可打开映射与过滤进行配置。核对无误后,单击保存并预检查。

步骤 4:预检查

预检查会自动核对连接、权限、日志参数与命名规范等配置项:源端归档日志与补充日志是否开启、LogMiner 是否可用、账号权限是否充足、无主键表提示、循环链路检测、库名表名是否符合 SelectDB 命名规范等。预检查未通过时,单击检查项右侧操作列的详情排查原因,修复后单击重新检查。本次演示 11 项检查一次性全部通过。

步骤 5:启动任务

预检查通过后单击立即启动,页面提示启动成功并展示任务名称与任务 ID。单击查看详情进入任务详情页,即可按顺序查看结构复制、全量复制、增量复制各阶段的执行情况。

四、查看同步结果:结构、全量与增量复制

结构复制与查看 DDL

在结构复制页签查看目标对象的创建结果,列表展示源/目标库、源/目标对象、开始与结束时间及状态;结构复制把 Oracle 表结构转换为 SelectDB 建表语句并在目标端执行,本次演示的四张表全部变为已完成。单击操作列的查看 DDL,可以看到自动补上的 DISTRIBUTED BY HASH 分桶键、BUCKETS 分桶数与 replication_num 副本数等 SelectDB 专属属性,确认建表结果符合预期。

全量复制

切换到全量复制页签,检查表级状态、完成进度和数据量;全量复制把存量数据写入目标端,过程中可单击监控查看各项指标,并通过限流设置限制每秒写入目标端的速率(行/秒)。本次演示四张表很快全部完成,随后任务自动进入增量复制阶段。

增量复制:变更捕获与延迟监控

在增量复制页签,可查看操作计数与读取延迟、复制延迟两条监控曲线。源端产生业务写入后,链路自动将变更同步到目标端,全程无需人工干预。本次演示累计捕获 INSERT 49 条、UPDATE 11 条、DDL 2 条,DELETE 为 0,各项计数随源端写入实时更新。

增量变更与 DDL 同步结果

单击查看 DDL 可以打开增量复制 DDL 详情,逐条核对 DDL 的回放情况,确认结构变更已在目标端 SelectDB 按相同语义完成。操作计数与延迟曲线持续刷新,复制延迟保持在秒级,同步链路稳定运行;后续源端的任意变更都会持续同步到目标端。

五、常见问题(FAQ)

Q1:Oracle 同步到 SelectDB 支持哪些复制类型?

支持结构复制、全量复制和增量复制三种类型,可单独或组合使用。生产迁移建议同时勾选三种:结构复制完成建表,全量复制完成存量初始化,增量复制基于 LogMiner 持续同步变更,实现平滑迁移。

Q2:源端 Oracle 需要做哪些配置?

需要开启 ARCHIVELOG 归档日志模式、补充日志(主键/全列)与 FORCE LOGGING,并保证 LogMiner 可用、归档日志保留时间足够。否则预检查会失败,增量同步无法建立复制通道。

Q3:源端账号需要哪些权限?

需具备 LogMiner 相关权限(SELECT ANY DICTIONARY、LOGMINING、SELECT ANY TRANSACTION 等)以及对复制对象的 SELECT 权限,具体以任务预检查结果为准;目标端账号需具备建表与写入权限。

Q4:目标端存在同名表或存量数据怎么办?

在数据源与目标页签的目标库同名对象处理策略中选择:预检查报错并停止任务、跳过并继续任务或删除对象并重建。执行删除重建前务必确认目标数据可以处理,避免误删。

Q5:预检查失败如何处理?

在预检查页签单击失败项右侧的详情查看具体原因,常见如未开启归档日志或补充日志、LogMiner 不可用、权限不足、库名表名不符合 SelectDB 命名规范等;手动修复后单击重新检查,直至全部通过,警告项可视情况修复或忽略。

Q6:复制延迟保持在秒级意味着什么?

在复制详情页顶部与增量复制页签均可查看读取延迟与复制延迟。延迟持续保持在秒级,说明源端变更已被及时捕获并写入目标端,此时可以结合业务校验结果评估将分析类流量切换到 SelectDB。

结语

通过以上步骤,我们使用 NineData 完成了 Oracle 到 SelectDB 的结构、全量和增量复制配置,并验证了对增删改与 DDL 变更的实时同步能力。相比手工导出导入,NineData 把建表映射、模型转换、增量捕获与延迟监控整合在一条可视化链路中,大幅降低 Oracle 到 SelectDB 迁移的门槛与风险。如果你正在规划 Oracle 到 SelectDB 的数据迁移,不妨按本文步骤实际操作一遍。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、NineData Oracle 到 SelectDB 数据复制能力概览
  • 二、前提条件与使用限制
    • 前提条件
    • 使用限制
  • 三、创建 Oracle 到 SelectDB 的数据复制任务(5 步)
    • 步骤 1:配置数据源与目标
    • 步骤 2:选择复制对象
    • 步骤 3:配置映射(目标库表、主键与分桶键)
    • 步骤 4:预检查
    • 步骤 5:启动任务
  • 四、查看同步结果:结构、全量与增量复制
    • 结构复制与查看 DDL
    • 全量复制
    • 增量复制:变更捕获与延迟监控
    • 增量变更与 DDL 同步结果
  • 五、常见问题(FAQ)
  • 结语
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档