数据库替代兼容性评估
核心结论推荐优先验证 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 需评估)。
综合评分最高(46 分),但存在 1 项阻断,试点前须逐项确认改造方案。
※ ops 维度暂无矩阵条目,未评估计满分
※ ⚠ 部分输入无法摄入,评分仅覆盖已识别内容;请检查未覆盖清单
综合评分 25 分(第 2 位),存在 2 项阻断,迁移前必须解决。
※ ops 维度暂无矩阵条目,未评估计满分
※ 存在 1 个阻断项,总分强制不超过 69
※ ⚠ 部分输入无法摄入,评分仅覆盖已识别内容;请检查未覆盖清单
综合评分 25 分(第 3 位),存在 2 项阻断,迁移前必须解决。
※ ops 维度暂无矩阵条目,未评估计满分
※ 存在 1 个阻断项,总分强制不超过 69
※ ⚠ 部分输入无法摄入,评分仅覆盖已识别内容;请检查未覆盖清单
P50–P90 区间估算(人天):P50 为中位预期、P90 为保守预期;非承诺工期,以试点验证为准。
主要不确定项
另有 1 项,见技术版报告。
主要不确定项
主要不确定项
另有 1 项,见技术版报告。
回答「改数据库还是改代码、怎么改、多少时间、如何验证」(D-114)。双方案人天为同一批风险发现的可比口径(不可行侧已回落另一侧);逐条改法与验证方法见技术版报告。
推荐混合路线约 12.5 人天(数据库侧改 69 项、应用侧改 20 项、73 项需逐项判定);纯数据库侧方案约 11.5 人天,纯应用侧方案约 13.5 人天。
※ 改造方案覆盖 162/330 条风险发现(49%);未覆盖 168 条(基准工时约 1.5 人天)不在双方案对比内,已按通用口径计入整体人天估算。
※ 另有 7 条仅可应用侧改、7 条仅可数据库侧改,纯方案对比条中已回落可行侧计算。
推荐混合路线约 6.5 人天(数据库侧改 51 项、应用侧改 23 项、136 项需逐项判定);纯数据库侧方案约 6 人天,纯应用侧方案约 7.5 人天。
※ 改造方案覆盖 210/441 条风险发现(48%);未覆盖 231 条(基准工时约 0.5 人天)不在双方案对比内,已按通用口径计入整体人天估算。
※ 另有 7 条仅可应用侧改、4 条仅可数据库侧改,纯方案对比条中已回落可行侧计算。
推荐混合路线约 16 人天(数据库侧改 279 项、应用侧改 76 项、150 项需逐项判定);纯数据库侧方案约 15 人天,纯应用侧方案约 18 人天。
※ 改造方案覆盖 505/758 条风险发现(67%);未覆盖 253 条(基准工时约 2 人天)不在双方案对比内,已按通用口径计入整体人天估算。
※ 另有 7 条仅可应用侧改、58 条仅可数据库侧改,纯方案对比条中已回落可行侧计算。
以下问题无法自动改写,迁移前必须逐项确认解决方案,否则相应目标库不可用。
OceanBase 4.3.5(Oracle 兼容模式)
openGauss 6.0(A 兼容模式)
PostgreSQL 16
本次评估实际覆盖的输入规模(口径与明细见技术版报告)。
不兼容发现按严重程度 × 问题类别计数;颜色越深代表该格问题越集中(各目标库同一色阶,可直接对比;悬停单元格可查看明细口径)。
openGauss 6.0(A 兼容模式) · 330 条发现
OceanBase 4.3.5(Oracle 兼容模式) · 441 条发现
PostgreSQL 16 · 758 条发现
五类去向合计 = 100%:无法识别的内容进入「未覆盖」清单并降低置信度,而不是被静默丢弃。
签约或立项前,建议先以小规模试点验证以下高风险点。
| # | 验证项 | 为什么重要 | 目标库 |
|---|---|---|---|
| 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 项,完整清单见技术版报告。