FYF
» HerBert
Toggle navigation
FYF
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
HCCDP
实验题
About Me
归档
标签
三、GaussDB数据库迁移笔记
无
2025-12-01 22:40:09
4
0
0
admin
## 一、数据库迁移概述 ### 1. 迁移面临的挑战 - **上层应用改造**:中间件SQL、内嵌SQL等 - **数据库对象迁移**:千万级存储过程、函数、触发器等 - **语法兼容性**:如 `ROWNUM`、`CONNECT BY` 等方言差异 - **数据迁移复杂性**:数据完整性、一致性、安全性 - **业务割接测试**:正确性、压力、性能、稳定性验证 ### 2. 优秀迁移方案特征 - **迁移前省心**:评估能力、SQL自动转换、风险识别 - **迁移时放心**:一站式全自动、支持全量+增量、数据一致性校验 - **迁移后安心**:性能不降、运维方便、监控齐全 --- ## 二、数据库迁移工具链:UGO + DRS ### 1. UGO(数据库和应用迁移服务) - **专注异构数据库对象与应用迁移** - **四大核心功能**:评估、结构迁移、应用迁移、SQL审核 ### 2. DRS(数据复制服务) - **在线迁移、实时同步、异地容灾** - **支持多种数据库源与目标** --- ## 三、UGO 详解 ### 1. UGO 应用场景 | 场景 | 说明 | |------|------| | 数据库评估 | 评估兼容性、识别迁移风险、工作量评估 | | 对象迁移 | 语义级SQL转换、一键迁移、对象对比 | | 应用迁移 | 源码扫描、SQL评估与转换、辅助代码改造 | | SQL审核 | 前置审核SQL规范、设计、性能问题 | ### 2. UGO 核心功能 #### (1)源库画像 - 采集数据库关键特性:对象统计、版本、字符集等 - 支持对象类型:表、索引、视图、函数、存储过程、包、同义词、序列、用户、角色、授权等 #### (2)语法兼容性评估 - 精确到目标库具体版本的细粒度评估 - 覆盖数万个语法点分析 - 输出不兼容语法点及改进建议 #### (3)SQL语法转换 - 语义等价转换,如 Oracle → GaussDB - 转换示例: ```sql -- Oracle CREATE TABLE tt (id INT, name CHAR(10 CHAR)); -- GaussDB CREATE TABLE tt (id NUMBER(38), name NVARCHAR2(10)); ``` #### (4)对象迁移流程 ``` 源库采集 → 预迁移评估 → 目标库确认 → 语法转换 → 对象校正 → 验证上线 ``` - 支持按对象类型、名称过滤迁移范围 - 失败对象支持人工校正 #### (5)对象比对 - 比对维度:数量、名称、关键属性 - 支持语义等价性比对(如索引) - 输出完整比对报告 #### (6)应用迁移 - 支持源码静态扫描(Java/MyBatis/C#) - 支持运行时SQL捕获(JDBC) - 辅助源码改造,回填源文件 #### (7)SQL审核 - 审核规则:GaussDB(105条)、MySQL(78条)、PostgreSQL(90条) - 支持复杂对象(存储过程、函数)审核 - 支持流水线对接与插件开发 --- ### 3. UGO 工作原理 #### (1)对象采集 - 通过 `DBMS_METADATA`、`SHOW CREATE`、系统视图拼接等方式获取SQL - 并发采集(多线程 + 连接池) - 分析对象依赖关系,生成优先级排序 #### (2)语法解析与转换 - 将官方SQL语法描述翻译为UGO可识别的语法描述文件 - 解析SQL生成语法树,再转换为Java描述类 - 基于转换器(Converter)进行语义等价转换 #### (3)对象比对 - 采集源库与目标库对象属性 - 比对数量、名称、关键属性 - 输出比对报告 #### (4)SQL审核流程 ``` SQL获取 → 语法解析 → 提取依赖对象 → 获取数据字典 → 执行计划分析 → 审核报告 ``` --- ### 4. UGO 关键特性 #### (1)转换配置 - 根据业务需求设置转换参数 - 支持转换配置模板,快速迁移 #### (2)表空间映射 - 适用于目标库为 GaussDB/PostgreSQL - 创建源库到目标库表空间映射关系 #### (3)分布映射 - 适用于目标库为 GaussDB 分布式 - 指定表的分布方式(Hash/Replication/Range/List) #### (4)批量修改 - 对迁移失败的SQL进行批量替换修改 - 修改后可还原 --- ### 5. UGO 使用流程 #### (1)创建评估任务 - 填写项目信息 - 配置源库连接,测试连通性 - 选择采集对象类型、目标库类型、Schema范围 #### (2)评估结果展示 - 兼容性统计(支持率、部分支持、不支持) - 改造工作量评估(人天) - 不兼容语法点列表 #### (3)创建迁移任务 - 选择已评估项目 - 配置目标库连接 - 选择迁移对象,配置转换参数 #### (4)转换与校正 - 自动语法转换 - 失败对象支持手动校正 #### (5)对象比对 - 创建比对项目 - 自动或手动输入源库与目标库连接信息 - 查看比对结果 --- ### 6. UGO 常见问题处理 | 问题 | 原因与处理 | |------|-----------| | 安装时 license 不匹配 | 修改 `install-default.conf` 中 `service.ip_address` | | 用户被锁住 | 使用管理员执行 `ALTER USER ... ACCOUNT UNLOCK;` | | 数据库只读 | 主备切换导致,填写所有IP或联系DBA切换回主 | | 字符长度未扩展 | 修改字符集扩展配置参数 | | 分布列不符合预期 | 手动指定每个表的分布列 | | 表空间不存在 | 配置表空间映射或注释表空间 | --- ## 四、DRS 详解 ### 1. DRS 应用场景对比 | 场景 | 实时迁移 | 实时同步 | 实时灾备 | |------|----------|----------|----------| | 适用场景 | 跨云/云下→云上迁移 | 实时分析、数仓同步 | 异地容灾、主备倒换 | | 特点 | 全库搬迁(表、数据、索引、视图、存储过程等) | 表级同步、支持异构、动态增减对象 | 实例级灾备、支持主备倒换 | | 功能特性 | 支持迁移用户、参数对比 | 支持数据加工、对象名映射 | 支持参数对比、主备切换 | ### 2. DRS 技术原理 #### (1)结构迁移 - **阶段一**:表结构、主键、唯一键 - **阶段二**:索引、视图、函数、存储过程 - **阶段三**:触发器、事件、作业 #### (2)全量迁移 - 分片迁移:有主键表按主键分片,分区表按分区迁移 - 多线程读取 + 写入 - 记录安全位点,支持断点续传 #### (3)增量迁移(基于日志) - **日志拉取**:读取源库日志(如 Oracle LogMiner) - **解析整合**:按事务顺序整合变更记录 - **转换回放**:转换为目标库SQL,并行回放 #### (4)增量并行回放 - 并行分析引擎检查记录冲突 - 无冲突记录并行写入,有冲突记录等待后重试 #### (5)数据对比(默克尔树算法) - 快速定位不一致的数据块 - 支持行级对比 --- ### 3. DRS 操作流程(Oracle → GaussDB) #### (1)创建同步任务 - 配置源库(Oracle)连接信息 - 配置目标库(GaussDB)连接信息 #### (2)对象选择 - 选择要同步的表、Schema #### (3)流速模式设置 - 支持全天限流或时段限流 - 避免对源库造成压力 #### (4)高级设置 - 全量设置:导出/导入并发数、导入模式(COPY/INSERT) - 增量设置:抓取并发数、回放并发数、冲突策略(覆盖/报错/忽略) #### (5)数据加工 - 支持列筛选(仅同步部分列) - 支持行过滤(条件过滤) #### (6)预检查 - 目标库磁盘空间 - 字符集一致性 - 时钟同步 #### (7)监控与对比 - 查看同步进度、延迟 - 创建数据对比任务(行对比、内容对比) - 导出对比报告 --- ## 五、迁移最佳实践流程 ``` 1. 环境准备(网络打通、资源准备) 2. 使用UGO评估,生成评估报告 3. 使用UGO迁移USER、TYPE、TABLE、SEQUENCE等 4. 使用DRS进行全量数据迁移 5. 使用UGO迁移剩余对象(索引、触发器等) 6. 使用UGO对象比对 7. 使用DRS数据对比 8. 应用迁移(UGO应用迁移功能) 9. 初步测试验证 10. 功能与性能测试 ``` --- ## 六、思考题答案(仅供参考) 1. **可以进行数据库和应用迁移的服务是以下哪个云服务?** ✅ **C. UGO** 2. **下列选项中,对DRS服务中实时迁移功能的特点描述正确的是哪些选项?** ✅ **B. 能够最大限度允许迁移过程中业务继续对外提供使用** ✅ **C. 有效的将业务系统中断时间和业务影响最小化** ✅ **D. 实现数据库平滑迁移上云** --- ## 七、缩略语 - **UGO**:Database and Application Migration UGO(数据库和应用迁移) - **DRS**:Data Replication Service(数据复制服务)
上一篇:
一、数据库介绍
下一篇:
二
0
赞
4 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网