GaussDB 应用迁移工具 UGO
数据库迁移整体解决方案
数据库迁移的整体视角
数据库迁移从上层的应用到底层的基础设施可以分为三个维度:
- 应用 SQL 迁移:涉及应用代码中的业务逻辑 SQL。具体包括:
- 应用源代码中的 SQL、脚本中的 SQL;
- 配置文件中的 SQL,例如 Mybatis 配置文件;
- 动态 JDBC SQL、运行时 SQL。
- 数据库对象迁移:涉及用户、角色、包、存储过程、函数、表、索引等数据库对象,以及这些数据库对象之间的依赖关系。
- 数据迁移:涉及数据库底层存储中的数据文件、以及日志文件的迁移。
数据库迁移需要考虑的问题和要求:
- 语法兼容性要求:
- 对象兼容性:表、索引、视图、触发器、函数、存储过程、包、Type 等。
- 数据类型:数值类型(NUMBER)、字符类型(CHAR/NCHAR/VARCHAR2)、大字段类型(CLOB/BLOB)。
- 系统函数:sysdate、to_date、to_char、wm_concat、trim、length 等常用函数。
- 系统视图:all_tables、all_indexes、all_tab_columns 等系统视图。
- 系统高级包:DBMS_JOB、DBMS_OUTPUT、DBMS_METADATA 等系统包。
- 操作符:不同数值类型之间的运算、字符串之间的运算、日期类型之间的运算。
- 权限:系统权限、对象权限、角色权限的差异。
- DCL 语句:GRANT 和 REVOKE 授权语句。
- DML 语句:INSERT、UPDATE、DELETE、MERGE 语句。
- PL/SQL 代码:控制语句、事务处理、异常处理、嵌套、标签等语法差异。
- 其他:例如字符集、排序规则等。
- 业务要求:
- 迁移方式:全量一次性迁移 OR 全量 + 增量持续迁移
- 业务割接方式:一次性割接 OR 业务分流 + 逐步割接
- 迁移性能要求:可接受的停机时间、以及 RTO 和 RPO 要求
- 数据转换要求:数据过滤、数据类型映射
GaussDB 迁移解决方案
可以通过华为官方提供的应用迁移工具 UGO 和数据复制服务 DRS,将多种主流数据库迁移到 GaussDB。
- 应用迁移工具 UGO:支持数据库对象的评估、转换和迁移,支持应用 SQL 的扫描、评估和转换。
- 数据复制服务 DRS:支持基于日志的实时变化数据捕捉和同步,支持基于日志的增量数据实施校验。
数据库应用迁移工具 UGO
UGO 是华为云提供的一种异构数据库结构迁移的专业服务,可将源数据库中的 DDL、DML 和 DCL 一键自动转换为华为云 GaussDB/RDS 的 SQL 语法。
核心功能
- 源库画像
采集数据库关键元数据,多维度分析抽象出数据库的信息全貌,为进一步精准定位数据库应用场景和用户操作习惯提供数据基础。
采集的数据库元数据包括:
- 源库类型
- 源库版本
- 数据库容量大小
- 数据库对象统计
- 数据库对象分布
- 字符集等其他信息
- 语法兼容性评估
以源库画像作为输入,根据选定的目标库类型,对源库的核心对象类型进行语法兼容性分析,分析结果包括原生兼容、转换兼容、部分兼容、以及不兼容,并对结果进行分类统计,最终给出不兼容的语法点、改造建议、以及改造工作量评估。
- SQL 语法转换
实现源库 SQL 到目标库 SQL 的自动转换,最大化实现转换前后语义等价,减少人工分析和手动转换的工作量,降本提效。

