使用OGG实现Oracle到MySQL数据平滑迁移

本文详细介绍了如何使用OGG工具实现Oracle到MySQL的数据平滑迁移,包括源端和目标端的配置、全量与增量数据同步、数据校验和问题处理,提供了一种高效的数据迁移方案。
摘要由CSDN通过智能技术生成

本文目录:

一、OGG概述

(一)OGG逻辑架构

二、迁移方案

(一)环境信息

(二)表结构迁移

(三)数据迁移

1.源端OGG配置

(1)Oracle数据库配置

(2)Oracle数据库OGG用户创建

(3)源端OGG 管理进程(MGR)配置

(4)源端OGG 表级补全日志(trandata)配置

(5)源端OGG 抽取进程(extract)配置

(6)源端OGG 传输进程(pump)配置

(7)源端OGG 异构mapping文件(defgen)生成

2.目标端OGG配置

(1)目标端MySQL数据库配置

(2)目标端OGG 管理进程(MGR)配置

(3)目标端OGG 检查点日志表(checkpoint)配置

(4)目标端OGG 回放线程(replicat)配置

3.全量同步配置

(1)源端OGG 全量抽取进程(extract)配置

(2)目标端OGG 全量回放进程(replicat)配置

三、数据校验

四、迁移问题处理

(一)MySQL限制

(二)全量与增量衔接

(三)OGG版本选择

(四)无主键表处理

(五)OGG安全规则

(六)数据抽取方式

五、OGG参考资料
一、OGG概述
OGG全称为Oracle GoldenGate,是由Oracle官方提供的用于解决异构数据环境中数据复制的一个商业工具。相比于其它迁移工具OGG的优势在于可以直接解析源端Oracle的redo log,因此能够实现在不需要对原表结构做太多调整的前提下完成数据增量部分的迁移。本篇文章将重点介绍如何使用OGG实现Oracle到MySQL数据的平滑迁移,以及讲述个人在迁移过程中所碰到问题的解决方案。
(一)OGG逻辑架构

参照上图简单给大家介绍下OGG逻辑架构,让大家对OGG数据同步过程有个简单了解,后面章节会详细演示相关进程的配置方式,在OGG使用过程中主要涉及以下进程及文件:

Manager进程:需要源端跟目标端同时运行,主要作用是监控管理其它进程,报告错误,分配及清理数据存储空间,发布阈值报告等

Extract进程:运行在数据库源端,主要用于捕获数据的变化,负责全量、增量数据的抽取

Trails文件:临时存放在磁盘上的数据文件

Data Pump进程:运行在数据库源端,属于Extract进程的一个辅助进程,如果不配置Data Pump,Extract进程会将抽取的数据直接发送到目标端的Trail文件,如果配置了Data Pump,Extract进程会将数据抽取到本地Trail文件,然后通过Data Pump进程发送到目标端,配置Data Pump进程的主要好处是即使源端到目标端发生网络中断,Extract进程依然不会终止

Collector进程:接收源端传输过来的数据变化,并写入本地Trail文件中

Replicat进程:读取Trail文件中记录的数据变化,创建对应的DML语句并在目标端回放

二、迁移方案
(一)环境信息

软件名称 源端 目标端
OGG版本 OGG 12.2.0.2.2 For Oracle OGG 12.2.0.2.2 For MySQL
数据库版本 Oracle 11.2.0.4 MySQL 5.7.21
OGG_HOME /home/oracle/ogg /opt/ogg
IP地址 17X.1X.84.124 17X.1X.84.121
数据库 cms cms

(二)表结构迁移

表结构迁移属于难度不高但内容比较繁琐的一步,我们在迁移表结构时使用了一个叫sqlines的开源工具,对于sqlines工具在MySQL端创建失败及不符合预期的表结构再进行特殊处理,以此来提高表结构转换的效率。
注意:OGG在Oracle迁移MySQL的场景下不支持DDL语句同步,因此表结构迁移完成后到数据库切换前尽量不要再修改表结构。

(三)数据迁移

数据同步的操作均采用OGG工具进行,考虑数据全量和增量的衔接,OGG需要先将增量同步的抽取进程启动,抓取数据库的redo log,待全量抽取结束后开启增量数据回放,应用全量和增量这段期间产生的日志数据,OGG可基于参数配置进行重复数据处理,所以使用OGG时优先将增量进行配置并启用。此外,为了避免本章节篇幅过长,OGG参数将不再解释,有需要的朋友可以查看官方提供的Reference文档查询任何你不理解的参数。
1.源端OGG配置

(1)Oracle数据库配置

针对Oracle数据库,OGG需要数据库开启归档模式及增加辅助补充日志、强制记录日志等来保障OGG可抓取到完整的日志信息
查看当前环境是否满足要求,输出结果如下图所示:

SQL> SELECT NAME,LOG_MODE,OPEN_MODE,PLATFORM_NAME,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;

如果条件不满足则实行该部分,

开启归档(开启归档需要重启数据库)
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list;
开启附加日志和强制日志
SQL> alter database add supplemental log data;
SQL> alter database force logging;
SQL&g
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值