第一层:钱
第二层:锁定
第三层:时代变了
Oracle 持有成本 vs 迁移后成本(年度估算)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
坑 1:SQL 方言比想象中麻烦
-
约 40% 可以直接或小改迁移 -
约 45% 需要重写逻辑 -
约 15% 是依赖 Oracle 特有特性(CONNECT BY、Model 子句、物化视图的自动刷新机制),需要在应用层重新实现
坑 2:数据迁移不是一次性的
-
存量数据的全量迁移(一次) -
迁移期间业务继续产生增量数据的同步(持续) -
迁移完成后的数据一致性校验(反复) -
上线切换时的最终增量追平(时间窗口极短,压力极大)
NUMBER 类型在 PG 里对应什么?DATE 包含时间部分在 PG 里又是什么?VARCHAR2 的长度语义是字节还是字符?
坑 3:实时同步是整个项目最脆弱的环节
一是 FineDataLink 5.0 对 Oracle 的 CDC 支持独立做了优化
二是自动 DDL 同步
三是断点续传和异常恢复
坑 4:切换窗口永远比预期短
迁移前后关键指标对比(迁移完成 3 个月后)
-
每天有定时任务在跑数据质量检测,发现异常自动通知对应的数据负责人; -
新业务系统接入有标准化的流程,不靠个人经验; -
数据血缘可以一键追溯,从分析报表追到源表、追到 ETL 任务节点。
Oracle 迁移启动前的必要检查项
-
先算账,再做决定 -
把 License 费、年维护费、专用硬件、DBA 溢价一起算,看 ROI 回收周期是否在 2 年内 -
摸清存量 SQL 的复杂度 -
重点看存储过程、视图、Oracle 特有语法的数量,这决定了迁移的实际工作量下限 -
迁移期间数据同步是核心风险 -
停库迁移在业务系统上几乎不可行,必须有实时 CDC 同步能力托底,GoldenGate 很贵,FineDataLink 是更低成本的替代 -
切换窗口要演练至少三次 -
没有演练的切换计划不可信,每次演练都会暴露新问题 -
迁移后治理比迁移本身更重要 -
数据质量、血缘追踪、新系统接入标准化——这些做好了,迁移才算真的值

