跳到主要内容

Oracle 到 Halo 迁移兼容矩阵

本章给出 Oracle 各版本源端到 Halo 各版本目标端的迁移能力实测矩阵。矩阵数据来自逐版本组合的实测(Oracle 容器化源端 + Halo 目标端 + hmt 迁移平台),覆盖连接、元数据迁移(表结构/约束/视图/序列)与数据迁移(常规类型/CLOB/RAW)。

  • 测试平台:Halo 迁移平台 hmt build260709
  • 测试环境:源端 gvenzl/oracle 容器(11-slim/18-slim/21-slim/23-slim),目标端 Halo 1.0.16(宿主机,Oracle 兼容模式 1521 端口)与 Halo 1.0.14(容器,database_compat_mode=oracle)
  • 数据截至:2026-08-15(全部 8 个组合测试完成)

总矩阵​

表 4-1 Oracle → Halo 迁移兼容矩阵(实测)

源端 Oracle 版本Halo 1.0.16(Oracle 兼容模式)Halo 1.0.14(单兼容模式)
11.2 XE (11-slim)⚠️ 部分可用 ¹⚠️ 部分可用 ¹
18c (18-slim)✅ 可用✅ 可用
21c (slim)✅ 可用✅ 可用
23ai (23-slim) ²✅ 可用✅ 可用

注意: ¹ 所有组合均不含 RAW 类型列迁移(BUG-1,8 个组合全部复现,见矩阵结论要点第 2 条);11.2 另受首次元数据任务创建问题(BUG-2)影响,重试或复用任务后可完成全套迁移。 ² 23-slim 容器实为 26ai Free 23.26.2,其 PDB 名为 FREEPDB1(非 XEPDB1),数据源配置需相应调整。 各组合的逐项通过情况(12/13)与数据量细节见下方分项明细。

矩阵结论要点:

  • 除 11.2 首次元数据创建的 BUG-2 外,全部 8 个组合的常规迁移能力可用:连接、表结构、主键/外键约束、视图、序列、常规类型数据、CLOB 数据(含中文与特殊字符 <>&'")均迁移正常。
  • 唯一跨版本阻断项是 RAW 类型列的数据迁移(BUG-1):8 个组合全部复现,含 RAW 列的表数据 0 行入库。
  • BUG-1 与 Halo 目标端版本无关(1.0.14 与 1.0.16 行为一致),属 hmt 平台的 writer 类型转换缺陷。
  • 11.2 的 BUG-2 仅阻断「首次」元数据任务创建(ORA-39212 使接口回滚);平台保留的任务定义仍可执行,重试或复用任务后全套迁移可完成。

分项明细​

各版本组合的分项实测结果如下。✅ 表示通过,❌ 表示失败/阻断,— 表示未测。

表 4-2 11.2 XE (11-slim)

测试项→ 1.0.16→ 1.0.14说明
数据源连接✅✅服务名 XE(非 CDB 架构)
元数据任务创建❌❌*BUG-2:ORA-39212 接口回滚;*1.0.14 轮次靠复用任务完成迁移
表结构迁移—✅1.0.16 轮未产出任务;1.0.14 轮通过
视图/序列迁移—✅同上
常规类型数据迁移—✅3000 行入库一致
CLOB 数据迁移—✅1000 行入库一致
RAW 数据迁移—❌0/500(BUG-1)
已知问题BUG-2、BUG-7BUG-1、BUG-2—

表 4-3 18c (18-slim)

测试项→ 1.0.16→ 1.0.14说明
数据源连接✅✅XEPDB1
元数据任务创建✅✅任务正常生成
表结构迁移✅✅表、字段、类型迁移正常
视图/序列迁移✅✅视图与序列各 1 个验证通过
常规类型数据迁移✅✅3000 行入库,行数一致
CLOB 数据迁移✅✅1000 行入库,行数一致
RAW 数据迁移❌❌0/500(BUG-1)
综合12/1312/13RAW 列迁移失败

表 4-4 21c (slim)

测试项→ 1.0.16→ 1.0.14说明
数据源连接✅✅XEPDB1
表结构/约束迁移✅✅表、主键、外键迁移正常
视图/序列迁移✅✅迁移正常
常规类型数据迁移✅✅3000~5000 行入库一致
CLOB 数据迁移✅✅1000~2000 行入库一致
RAW 数据迁移❌❌含 RAW+CLOB 混合表亦失败(BUG-1)

说明:21c→1.0.16 的先行探索过程未存独立 json,结论来自过程记录;21c→1.0.14 有完整 json。

表 4-5 23ai (23-slim,实测版本 26ai Free 23.26.2)

测试项→ 1.0.16→ 1.0.14说明
数据源连接✅✅PDB 名为 FREEPDB1
元数据任务创建✅✅任务正常生成
表结构迁移✅✅表、字段、类型迁移正常
视图/序列迁移✅*✅*对象迁移成功;重复创建序列时报 500(对象已存在,非迁移失败)
常规类型数据迁移✅✅3000 行入库,行数一致(首查计数偏小为迁移进行中,复核一致)
CLOB 数据迁移✅✅1000 行入库,行数一致
RAW 数据迁移❌❌0/500(BUG-1)

矩阵结论使用指引​

  • 新迁移项目选型:Oracle 11.2/18c/21c/23ai → Halo 1.0.14 或 1.0.16 的组合均可规划,仅需在方案中排除 RAW 列(或单独处理)。
  • 源端含 RAW 列的表:当前版本(hmt build260709)无法通过平台迁移,需另行处理。
  • 源端为 11.2:首次创建元数据任务若报 ORA-39212(接口回滚),属 BUG-2;重试创建或检查已生成任务并直接执行,全套迁移仍可完成。
  • 源端为 23ai:注意确认 PDB 名称(FREEPDB1),数据源 URL 服务名按实际填写。
  • 同一平台反复测试时,建议每次迁移前清理旧任务定义,避免命中历史任务的重复创建报错。