异构数据库迁移
将商业数据库的模式、代码与数据转换到开源数据库。
- Oracle → PostgreSQL
- Tibero → PostgreSQL
- SQL Server → PostgreSQL / MySQL
- Oracle → MySQL / MariaDB
Scenarios
将商业数据库的模式、代码与数据转换到开源数据库。
将自建数据库迁移到云虚拟机或托管数据库。
同一引擎的大版本升级与服务器迁移。
整合多个数据库,或按业务拆分。
Methodology
每个阶段都有交付物和进入下一阶段的门槛。
调查对象、数据量、事务模式与依赖应用,估算自动转换率与手工工作量。
确定目标架构、数据类型映射、字符集、迁移方式(批量/CDC)与停机目标。
转换模式、PL/SQL、视图、触发器与序列,确定应用 SQL 修改范围。
初始加载后以 CDC 追平增量,并通过演练实测耗时。
比较行数、校验和、聚合与业务查询结果,并进行性能测试。
停写 → 最终同步 → 验证 → 切换连接,并作出 Go/No-Go 判定。
切换后集中监控性能与错误,调优后移交运维团队。
Migration flow
Tools
按目的组合工具,不预设特定工具。
| 工具 | 用途 | 备注 |
|---|---|---|
| ora2pg | Oracle → PostgreSQL 模式、代码与数据转换 | 开源 · 以迁移报告评估难度 |
| AWS DMS · DMS Schema Conversion · AWS SCT | 迁移到 AWS 的异构/同构迁移,全量 + CDC | SCT 为桌面工具,DMS SC 为托管服务 |
| Azure Database Migration Service | MySQL → Azure Database for MySQL 等 | 不支持 Oracle → PostgreSQL——使用 ora2pg 等 |
| Migration service in Azure Database for PostgreSQL | PostgreSQL → Azure flexible server | 在线/离线 |
| Google Database Migration Service | MySQL/PostgreSQL 同构;Oracle、SQL Server → Cloud SQL for PostgreSQL / AlloyDB | 转换工作区 · CDC |
| NCP Database Migration Service | 迁移到 NAVER Cloud Cloud DB | 支持路径以官方文档为准 |
| pgloader | 将 MySQL、SQL Server 等加载到 PostgreSQL | 可定制类型转换规则 |
| mysqldump · mydumper/myloader | MySQL/MariaDB 逻辑备份与并行加载 | 大数据量使用 mydumper |
| Debezium (CDC) | 变更数据捕获 → 基于 Kafka 的同步 | 最短停机、并行运行 |
| Oracle GoldenGate | 源端 CDC(客户已持有时) | 以客户现有许可为准 |
Validation
不是证明“已迁移”,而是证明“完全一致”。
Downtime & rollback
Deliverables
FAQ
多数情况下 CDC 可大幅缩短停机,但最终同步与切换连接通常仍需短暂停写。目标时长依据演练结果确定。
评估阶段先用 ora2pg 等工具的报告估算自动与手工转换范围,再据此确定工期与费用。
Tibero 虽兼容 Oracle,但并非 ora2pg 官方支持的源库。我们会先在客户环境中通过 PoC 确认连接方式与转换范围,无法自动转换的对象纳入手工转换清单管理。
可以,可衔接云 MSP 与开源数据库维护服务。
告诉我们您使用的云、数据库版本、架构与困扰,我们将提出评估范围与实施方式。