基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
从 Oracle 迁移数据至 OceanBase Oracle
更新时间:2023-06-25 10:18:52
OceanBase 迁移服务(OceanBase Migration Service,OMS)支持迁移 Oracle 数据库的数据至 OceanBase Oracle 数据库,支持的类型包括结构迁移、全量迁移、增量迁移、正向切换和反向增量。
OMS 会对已完成全量数据迁移任务,且目标端已基本追平源端的增量数据,发起一轮针对源端数据库和目标端数据库中,被迁移的数据表的全量数据校验任务。
在 OMS 控制台创建从 Oracle 数据库迁移数据至 OceanBase Oracle 的数据迁移任务,您可以通过结构迁移、全量迁移和增量数据同步,无缝迁移源端数据库中的存量业务数据和增量数据至 OceanBase Oracle。
前提条件
已在目标端 OceanBase Oracle 数据库中创建对应的 Schema。OMS 支持迁移表和列,不支持迁移库,您需要提前在目标端创建对应的 Schema。
已创建源端和目标端的数据源,详情请参见 添加 Oracle 数据源 和 添加 OceanBase 数据源。
Oracle 源实例必须开启 archivelog,并且在 OMS 增量复制前已经切换过 logfile。
Oracle 源实例必须已经安装并可正常使用 logminer 工具。
注意事项
OMS 支持的 Oracle 数据库版本为 11G/12C/18C/19C non-CDB。
支持 Oracle 字符集和 OB_Oracle 不同场景下,字段长度根据数据迁移项目的具体情况选择策略。数据迁移项目为您展示字符集配置。
创建迁移项目
创建源端和目标端数据源。
如果您已经创建 Oracle 源端和 OceanBase Oracle 目标端的数据源,请忽略该步骤的操作。
新建同步链路。
登录 OMS 控制台。
在左侧导航栏,单击 数据迁移 。
在 数据迁移 页面,单击右上角的 新建迁移项目 。
在 选择源和目标 页面,配置各项参数。
参数 描述 迁移项目名称 支持中文、数字和字母的组合。 源节点 源端节点设置为已创建的 Oracle 数据源。 目标节点 目标节点设置为已创建的 OceanBase Oracle 数据源。 单击 查看数据源 ,即可查看 OMS 中所有已创建的数据源。
单击 下一步,在 选择迁移类型及对象 页面,配置各项参数。
根据业务需求,勾选当前迁移任务的 迁移类型。
迁移类型 包括 结构迁移、全量迁移、增量迁移、全量校检 和 反向增量。
如果设置 全量迁移,建议您同步设置 全量校检。在增量数据基本追平后,发起一轮针对源端数据库和目标端数据库中被迁移的数据表的全量数据校验任务。
选择迁移对象。
在左侧选中需要迁移的对象,单击 > ,将其添加至右侧列表中。您可以选择一个或多个库的表、视图作为迁移对象。
单击 下一步 ,在 迁移选项 页面,配置各项参数。
参数 描述 全量迁移是否允许目标表非空 目标端存在数据时不支持全量校验。如果您需要开启该选项,请在上一步移除全量校验。 增量记录保存时间 Store 拉取源端实例的增量日志后,存储在 OMS 内部的保留时间。 如果全量迁移并发过低、限速过慢、执行任务的持续时间超过该配置,可能导致自动清理增量 Store 日志,需要同步的时间点的日志不存在,而启动失败。 单位为小时,支持设置为 1~720 小时,默认值为 24 小时。 全量迁移并发参数 包括 平稳、正常 和 快速。全量迁移的性能不同,全量迁移任务所需要的资源也不同。 您也可以通过修改具体 Checker 组件的配置,实现自定义并发参数。 全量校验并发参数 全量迁移的并发线程数,包括读取线程和写入线程。如果迁移期间需要降低对源端业务实例的 IO 影响,节约带宽资源,可以降低线程并发配置。如果期望迁移速度较快,请适当调大参数。 支持设置为 1~128,默认值为 16。 字符编码与长度定义选项 您可以根据自身需求,进行下述选择: - 迁移忽略字段长度单位,取决于目标端 NLS_LENGTH_SEMANTICS 配置,即 N BYTE -> N。
- 强制转换 LENGH 单位为 CHAR,即 N BYTE -> N CHAR。
- 自动放大目标端字段长度,即 N BYTE -> 1.5N BYTE。
- 不做任何改动处理,即 N BYTE -> N BYTE。
注意: 当源端和目标端字符编码配置不同时,才会显示该参数。
单击 预检查,预检查并启动数据迁移项目。
在 预检查 环节,OMS 会检查数据库用户的读写权限、数据库的网络连接等是否符合要求。全部检查项目均通过后才能启动数据迁移任务。如果预检查报错,请排查并处理问题后,重新执行预检查,直至预检查成功。
预检查成功后,根据业务需求是否直接启动项目。
单击 保存,创建但暂时不启动数据迁移项目。
单击 启动任务,创建并直接启动数据迁移项目。
启动迁移项目
全部检查项目检查完成后,当且仅当全部成功可以进入启动项目。有失败的检查项目需要手动修复后,在当前界面复检。数据迁移项目启动后,依次执行选择的迁移类型:
结构迁移
负责迁移源库中的数据对象定义(表、索引、约束、注释和视图等)至 OceanBase 目标库中,会自动过滤临时表。
当源端数据库非 OceanBase 时,会依据目标 OceanBase 租户类型的语法定义标准进行数据类型和 SQL 语法的自动转换和拼装,然后复制至 OceanBase 目标库中。
您可以对目标对象进行以下操作:
查看创建语法 :完全兼容,为您展示在 OBServer 执行的 DDL 语法。不完全兼容,则展示转换后的创建语法。
查看数据库返回码 :失败的结构迁移任务,展示 DDL 语句和 OBServer 上执行的错误信息。
修改创建语法并重试 :运行失败的 DDL 和报错,您可以检查并修改该条 DDL 转换结果的定义,再次迁移至目标端。
全量迁移
迁移源库表的存量数据至 OceanBase 库对应的表中。当源库不断有业务写入时,OMS 会在全量数据迁移启动前,启动增量拉取模块,以拉取源实例中的增量更新数据,对其进行解析、封装,并存储至 OMS 中。
全量迁移加上增量迁移,可以确保目标端数据库与源端数据库的最终一致性。
全量数据迁移继承创建项目时配置的库表映射规则。详情请参见 数据类型和语法转换。
增量迁移
全量迁移任务开始后,会同步源库发生变化的数据(新增、修改或删除)至 OCeanBase 数据库对应的表中。
当全量数据迁移完成后,OMS 会启动增量数据回放模块,从增量数据拉取模块中获取增量数据。增量数据经过过滤、映射和转换后,再同步至目标实例中。
您可以在增量迁移模块查看延迟情况、迁移流量等增量迁移性能。

全量校验
在全量数据迁移完成,增量数据迁移至目标端并与源端基本追平后,OMS 会自动发起一轮针对源库配置的数据表和目标表的全量数据校检任务。
增量数据同步过程中,您也可以发起自定义的数据校检,OMS 会提供相应的接口。
针对校检出不一致的数据,OMS 会提供以源端为基准,在目标端进行订正操作的 SQL 脚本。
OMS 支持 执行中 的迁移项目跳过全量校验。在 全量校验 页面,单击 跳过全量校验 ,并在弹出对话框中,单击 确定 。

正向切换
注意
正向切换会停止正向增量迁移,补充结构迁移自动过滤的约束。
正向切换流程进行时,整个迁移项目不可以暂停。
启动同步切换前,请确保源端数据源为即将停写或者已经停写状态。
正向切换的流程如下:
启动同步切换
用户进入至同步切换任务流时,需要手动单击 启动同步切换。
切换预检查
预检查包括以下步骤:
同步延迟检查:如果启动增量同步后,延迟在 15 秒内,则预检查通过。如果未启动增量同步,则预检查自动通过。
全量校验结果检查:上一步全量校验任务全部一致,则通过。
源端迁移用户写权限检查。
如果预检查通过,会自动执行下一步操作。如果预检查未通过,会提示报错详情。
如果预检查未通过,您可以进行 重试 和 跳过 操作。
如果单击 跳过 ,需要在弹出的对话框中,再次单击 跳过 。启动目标端 Store
单击 启动目标端 Store 开始执行启动操作。等待执行通过后,会自动进行下一步(执行数据库对象)。
确认源端停写
在 确认源端停写 区域,打击 确定。

确认同步追平停写位点
单击 确认同步追平停写位点 ,执行完成后,为您展示当前增量同步延迟时间和增量同步位点。

停止正向同步
单击 停止正向同步 ,即可开始执行。如果停止失败,您可以进行 重试 或 跳过 操作。
执行数据库对象
为您展示 执行项目 列表,您需要依次手动执行数据库对象,包括 运行、查看日志 和 跳过 操作。自行处理的项目需要手动单击 标记完成。待全部标记完成后,进行下一步。

启动反向同步
在 启动反向同步 区域,单击 启动反向同步。等待页面提示 反向同步启动成功。

反向同步启动成功后,单击 反向增量 页签,查看 启动时间、反向同步性能 等详情。
反向同步性能包括:
延迟时间:目标端增量变更被同步至源端的滞后时间,单位为秒。
迁移流量:目标端增量变更数据被同步至源端的流量吞吐,单位为 KB/s。