迁衡dbca 管理版评估报告 v0.12.5 2026-08-02 00:00(UTC)

数据库替代兼容性评估

Oracle 计费迁移综合样品

源库 Oracle → openGauss 6.0(A 兼容模式) / OceanBase 4.3.5(Oracle 兼容模式) / PostgreSQL 16

核心结论推荐优先验证 OceanBase 4.3.5(Oracle 兼容模式):综合评分 46 分,预计改造 20.5–37 人天(置信度:极低);存在 1 项阻断,需先确认改造方案。

执行摘要 · 目标库对比

关键指标一页速览;推荐度(★)由综合评分映射,星级越高代表兼容性越好、迁移代价越低。

顺位 目标库 综合评分 评级 预计改造(P50–P90 人天) 阻断项 估算置信度 推荐度
1 OceanBase 4.3.5(Oracle 兼容模式) 首选 46 需评估 20.5 – 37 1 项 极低 ☆☆☆☆
2 openGauss 6.0(A 兼容模式) 25 需评估 31 – 45 2 项 极低 ☆☆☆☆
3 PostgreSQL 16 25 需评估 38 – 68.5 2 项 极低 ☆☆☆☆

迁移结论

按推荐顺序排列;综合评分 0–100,越高代表兼容性越好、迁移代价越低(评级口径:≥80 优 / 60–79 良 / <60 需评估)。

OceanBase 4.3.5(Oracle 兼容模式) 推荐优先验证
综合评分 46 需评估
SQL 语句 73
数据库对象 63
应用层 87
运维生态 100
阻断 1 项

综合评分最高(46 分),但存在 1 项阻断,试点前须逐项确认改造方案。

※ ops 维度暂无矩阵条目,未评估计满分

※ ⚠ 部分输入无法摄入,评分仅覆盖已识别内容;请检查未覆盖清单

openGauss 6.0(A 兼容模式) 备选 2
综合评分 25 需评估
SQL 语句 40
数据库对象 40.5
应用层 66
运维生态 100
阻断 2 项

综合评分 25 分(第 2 位),存在 2 项阻断,迁移前必须解决。

※ ops 维度暂无矩阵条目,未评估计满分

※ 存在 1 个阻断项,总分强制不超过 69

※ ⚠ 部分输入无法摄入,评分仅覆盖已识别内容;请检查未覆盖清单

PostgreSQL 16 备选 3
综合评分 25 需评估
SQL 语句 40
数据库对象 27.5
应用层 50
运维生态 100
阻断 2 项

综合评分 25 分(第 3 位),存在 2 项阻断,迁移前必须解决。

※ ops 维度暂无矩阵条目,未评估计满分

※ 存在 1 个阻断项,总分强制不超过 69

※ ⚠ 部分输入无法摄入,评分仅覆盖已识别内容;请检查未覆盖清单

改造工作量

P50–P90 区间估算(人天):P50 为中位预期、P90 为保守预期;非承诺工期,以试点验证为准。

OceanBase 4.3.5(Oracle 兼容模式)
20.537人天
置信度 极低
语法改写 3 对象改造 10 验证与测试 7.5

主要不确定项

  • SQL 解析成功率 88.7% 低于 90%,置信度降一档
  • 仅特征级评估(feature_only)的对象代码行数占 PL/SQL 总行数 100.0%,超过 30%,置信度降一档
  • 目标能力矩阵为 doc_based(仅公开资料、未经真库验证),P90 放大系数由 1.45 提高至 1.8

另有 1 项,见技术版报告。

openGauss 6.0(A 兼容模式)
3145人天
置信度 极低
语法改写 6.5 对象改造 13 验证与测试 11.5

主要不确定项

  • SQL 解析成功率 88.7% 低于 90%,置信度降一档
  • 仅特征级评估(feature_only)的对象代码行数占 PL/SQL 总行数 100.0%,超过 30%,置信度降一档
  • ⚠ 部分输入无法摄入,评分仅覆盖已识别内容;请检查未覆盖清单
PostgreSQL 16
3868.5人天
置信度 极低
语法改写 9.5 对象改造 14 验证与测试 14

主要不确定项

  • SQL 解析成功率 88.7% 低于 90%,置信度降一档
  • 仅特征级评估(feature_only)的对象代码行数占 PL/SQL 总行数 100.0%,超过 30%,置信度降一档
  • 目标能力矩阵为 doc_based(仅公开资料、未经真库验证),P90 放大系数由 1.45 提高至 1.8

另有 1 项,见技术版报告。

改造方案

回答「改数据库还是改代码、怎么改、多少时间、如何验证」(D-114)。双方案人天为同一批风险发现的可比口径(不可行侧已回落另一侧);逐条改法与验证方法见技术版报告。

openGauss 6.0(A 兼容模式)

推荐混合路线约 12.5 人天(数据库侧改 69 项、应用侧改 20 项、73 项需逐项判定);纯数据库侧方案约 11.5 人天,纯应用侧方案约 13.5 人天。

全部改数据库侧 11.5 人天
全部改应用侧 13.5 人天
推荐混合路线 12.5 人天
可自动改写 4 项 等价改写需人审 137 项 需人工方案 21 项

※ 改造方案覆盖 162/330 条风险发现(49%);未覆盖 168 条(基准工时约 1.5 人天)不在双方案对比内,已按通用口径计入整体人天估算。

※ 另有 7 条仅可应用侧改、7 条仅可数据库侧改,纯方案对比条中已回落可行侧计算。

OceanBase 4.3.5(Oracle 兼容模式)

推荐混合路线约 6.5 人天(数据库侧改 51 项、应用侧改 23 项、136 项需逐项判定);纯数据库侧方案约 6 人天,纯应用侧方案约 7.5 人天。

全部改数据库侧 6 人天
全部改应用侧 7.5 人天
推荐混合路线 6.5 人天
可自动改写 4 项 等价改写需人审 185 项 有损改造需确认 1 项 需人工方案 20 项

※ 改造方案覆盖 210/441 条风险发现(48%);未覆盖 231 条(基准工时约 0.5 人天)不在双方案对比内,已按通用口径计入整体人天估算。

※ 另有 7 条仅可应用侧改、4 条仅可数据库侧改,纯方案对比条中已回落可行侧计算。

PostgreSQL 16

推荐混合路线约 16 人天(数据库侧改 279 项、应用侧改 76 项、150 项需逐项判定);纯数据库侧方案约 15 人天,纯应用侧方案约 18 人天。

全部改数据库侧 15 人天
全部改应用侧 18 人天
推荐混合路线 16 人天
可自动改写 24 项 等价改写需人审 458 项 有损改造需确认 1 项 需人工方案 22 项

※ 改造方案覆盖 505/758 条风险发现(67%);未覆盖 253 条(基准工时约 2 人天)不在双方案对比内,已按通用口径计入整体人天估算。

※ 另有 7 条仅可应用侧改、58 条仅可数据库侧改,纯方案对比条中已回落可行侧计算。

阻断项 · 共 5 项

以下问题无法自动改写,迁移前必须逐项确认解决方案,否则相应目标库不可用。

OceanBase 4.3.5(Oracle 兼容模式)

openGauss 6.0(A 兼容模式)

PostgreSQL 16

资产盘点

本次评估实际覆盖的输入规模(口径与明细见技术版报告)。

14
SQL 文件
461
去重 SQL 语句
463
SQL 出现次数
10
MyBatis 映射文件
195
MyBatis 语句
71
数据库对象
35
PL/SQL 程序块
0
直连采集对象

风险矩阵

不兼容发现按严重程度 × 问题类别计数;颜色越深代表该格问题越集中(各目标库同一色阶,可直接对比;悬停单元格可查看明细口径)。

openGauss 6.0(A 兼容模式) · 330 条发现

函数 数据类型 performance 存储过程 语法 数据库对象 behavior app_layer 阻断 1 严重 4 13 3 3 3 较大 62 12 40 33 7 8 1 轻微 17 47 37 16 13 10 提示

OceanBase 4.3.5(Oracle 兼容模式) · 441 条发现

函数 数据类型 performance 存储过程 语法 数据库对象 behavior app_layer 阻断 严重 4 5 2 2 3 较大 1 4 40 7 1 10 轻微 1 37 5 8 提示 192 39 33 21 1 25

PostgreSQL 16 · 758 条发现

函数 数据类型 performance 存储过程 语法 数据库对象 behavior app_layer 阻断 1 严重 4 13 3 2 1 3 较大 102 194 40 45 47 10 4 轻微 100 47 37 21 56 7 21 提示

处置台账 · 每一条输入都有去向

五类去向合计 = 100%:无法识别的内容进入「未覆盖」清单并降低置信度,而不是被静默丢弃。

完整检查(文件) 15 条 · 2.7% 部分摄入(文件) 9 条 · 1.6% 摄入失败(文件) 0 条 · 0.0% 非通道资产(文件) 0 条 · 0.0% 解析成功 447 条 · 79.8% 部分解析 52 条 · 9.3% 解析失败 0 条 · 0.0% 特征级评估(对象) 35 条 · 6.2% 未覆盖(已登记) 2 条 · 0.4% 合计 560 条 · 100%

PoC 试点验证建议 · Top 10

签约或立项前,建议先以小规模试点验证以下高风险点。

#验证项为什么重要目标库
1验证高风险项:外部表(ORGANIZATION EXTERNAL):OceanBase 4.3.5 Oracle 模式 不支持(Oracle 外部表黑名单;改 ETL 装载或 OB 外表方案;依据公开文档评估,建议以 PoC 复核)(样例:corpus/billing-demo/ddl/schema.sql:233)critical 级问题,影响面大,需在 PoC 中确认改造方案可行(同类命中 1 处)OceanBase 4.3.5(Oracle 兼容模式)
2验证高风险项:MyBatis ${} 拼接对象名(表名/FROM/JOIN 位):OceanBase 4.3.5 Oracle 模式 不支持(目标无关的应用层风险:${} 拼接无法静态评估兼容性且有注入面;改;依据公开文档评估,建议以 PoC 复核)(样例:corpus/billing-demo/mapper/ArchiveMapper.xml:7)critical 级问题,影响面大,需在 PoC 中确认改造方案可行(同类命中 2 处)OceanBase 4.3.5(Oracle 兼容模式)
3验证高风险项:MyBatis ${} 拼接排序/分组列(ORDER BY/GROUP BY 位):OceanBase 4.3.5 Oracle 模式 不支持(目标无关的应用层风险:${} 拼接无法静态评估兼容性且有注入面;改;依据公开文档评估,建议以 PoC 复核)(样例:corpus/billing-demo/mapper/CustInfoMapper.xml:152)critical 级问题,影响面大,需在 PoC 中确认改造方案可行(同类命中 1 处)OceanBase 4.3.5(Oracle 兼容模式)
4验证高风险项:用户自定义类型(UDT)作为列类型:OceanBase 4.3.5 Oracle 模式 不支持(非 SYS 用户自定义类型作列类型不支持,含嵌套表/VARRAY 列;依据公开文档评估,建议以 PoC 复核)(样例:corpus/billing-demo/ddl/schema.sql:31)critical 级问题,影响面大,需在 PoC 中确认改造方案可行(同类命中 1 处)OceanBase 4.3.5(Oracle 兼容模式)
5验证高风险项:BFILE 外部文件类型:OceanBase 4.3.5 Oracle 模式 不支持(无外部文件定位器,需连同 DIRECTORY 与文件存储方案整体改造;依据公开文档评估,建议以 PoC 复核)(样例:corpus/billing-demo/ddl/schema.sql:293)critical 级问题,影响面大,需在 PoC 中确认改造方案可行(同类命中 1 处)OceanBase 4.3.5(Oracle 兼容模式)
6验证高风险项:ROWID / UROWID 列类型:OceanBase 4.3.5 Oracle 模式 不支持(ROWID/UROWID 列类型在迁移口径按黑名单处理;存储的物理地址跨库失效;依据公开文档评估,建议以 PoC 复核)(样例:corpus/billing-demo/ddl/schema.sql:317)critical 级问题,影响面大,需在 PoC 中确认改造方案可行(同类命中 1 处)OceanBase 4.3.5(Oracle 兼容模式)
7验证高风险项:XMLTYPE 列类型:OceanBase 4.3.5 Oracle 模式 不支持(comparator 按黑名单处理(含 ANYDATA);OB 高版本若补齐需真库验证后调整;依据公开文档评估,建议以 PoC 复核)(样例:corpus/billing-demo/ddl/schema.sql:381)critical 级问题,影响面大,需在 PoC 中确认改造方案可行(同类命中 1 处)OceanBase 4.3.5(Oracle 兼容模式)
8验证高风险项:临时表上的 DML 触发器:OceanBase 4.3.5 Oracle 模式 不支持(临时表上创建 DML 触发器实测报错(ORA-00600/-4007);依据公开文档评估,建议以 PoC 复核)(样例:corpus/billing-demo/ddl/schema.sql:516)critical 级问题,影响面大,需在 PoC 中确认改造方案可行(同类命中 1 处)OceanBase 4.3.5(Oracle 兼容模式)
9试点迁移对象 PRC_WRITE_OPLOG(procedure,约 14 行)对象改造工时约 1.5 人天(全库第 1 位),涉及特征:autonomous_transaction、commit_in_proc、exception_block、oracle_number_bare_type、oracle_varchar2_type、seq_nextval、when_others;先行试点可尽早暴露改造难点OceanBase 4.3.5(Oracle 兼容模式)
10试点迁移对象 PRC_ARCHIVE_CDR(procedure,约 39 行)对象改造工时约 1.0 人天(全库第 2 位),涉及特征:commit_in_proc、cursor_attribute、dbms_call_utl_file、dbms_call_utl_file.fclose、dbms_call_utl_file.file_type、dbms_call_utl_file.fopen、dbms_call_utl_file.put_line、dynamic_sql、exception_block、goto、oracle_number_bare_type、oracle_varchar2_type、to_char_call、when_others;先行试点可尽早暴露改造难点OceanBase 4.3.5(Oracle 兼容模式)

共 47 项建议,此处展示优先级最高的 10 项,完整清单见技术版报告。