一、OGG概述
OGG全称为Oracle GoldenGate,是由Oracle官方提供的用于解决异构数据环境中数据复制的一个商业工具。相比于其它迁移工具OGG的优势在于可以直接解析源端Oracle的redolog,因此能够实现在不需要对原表结构做太多调整的前提下完成数据增量部分的同步。基于Oracle OGG,介绍一种将Oracle数据库的数据实时同步到Kafka消息队列的方法。
1、OGG逻辑架构

2、 OGG概念
Manager进程:需要源端跟目标端同时运行,主要作用是监控管理其它进程,报告错误,分配及清理数据存储空间,发布阈值报告等。
Extract进程:运行在数据库源端,主要用于捕获数据的变化,负责全量、增量数据的抽取。
Data Pump进程:运行在数据库源端,属于Extract进程的一个辅助进程,,从本地Trail文件中读取数据,并通过网络将数据发送到目标端OGG。
Collector进程:数据接收程序运行在目标端机器,用于接收Data Pump发送过来的Trail日志,并将数据写入到本地Trail文件。
Replicat进程:数据复制(Replicat):数据复制运行在目标端机器,从Trail文件读取数据变更,并将变更数据应用到目标端数据存储系统。本案例中,数据复制将数据推送到kafka消息队列。***
Trails文件:临时存放在磁盘上的数据文件。
3、OGG检查点
作为一个复制软件,首要是考察是它的可靠性,确保事务的完整性,在复制的过程中,源端和目标端的一致性。在日常运维可能会发生各种故障:进程故障、trail文件故障、网络故障、服务器故障等等。然后OGG各种故障的解决办法:一是靠进程的自动重启机制,二是靠checkpoint机制,保证在各种故障情况下不丢数据。

OGG检查点:记录进程的读、写的位置,在恢复时需要使用,保证事务的完整性。
OGG两种存储方式:
1)存放在dirchk下的文件中
2)存放在指定的checkpoint table
对比:
1)nodbcheckpoint:性能较高
2)checkpointtable:检查点信息存储在数据库表中,和实际事务作为一个事务提交,可以从数据表中找到更多的信息
检查点分为Startup检查点信息、Recovery检查点、Current检查点
1)Startup检查点信息:进程启动时,会创建startup检查点
2)Recovery检查点:进程恢复时,需要从哪个点开始恢复
3)Current检查点:进程当前(最近的)检查点信息
查看指令:info ext1, showch
3.1 检查点-extract进程

1、读检查点:读到哪个日志文件及相对位移值
1)有startup、recovery、current checkpoint
2)一般是修改current checkpoint来调整日志文件读的位置alter extract ext1, [thread n,] extseqno , extrba 0
2、写检查点:正在写到的trail文件编号及相对位移值
1)有current checkpoint
2)修改写检查点:重启进程或者etrollover
alter extract ext1, etrollover
(执行完成之后注意需要手工设置pmp进程的读检查点位置:
info ext1, showch确认新的写检查点的trail文件编号为N,然后
alter pmp1, extseqno N, extrba 0)「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




