使用ogg实现oracle到kafka的增量数据实时同步
彬彬
2022.04.07
一、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检查点:记录进程的读、写的位置,在恢复时需要使用,保证事务的完整性。