oracle数据如何通过goldengate实时同步到kafka消息队列中
Oracle是一款广泛使用的关系型数据库管理系统,在实际的生产环境中,由于业务需求的复杂及数据的多样性,可能需要将Oracle中的数据实时同步到其他的数据存储介质中,如Kafka消息队列。而Goldengate是Oracle官方提供的一款数据同步工具,它支持将Oracle数据库中的数据实时同步到Kafka消息队列中,本文就从以下两个方面进行阐述:
一、配置Goldengate实现Oracle数据同步到Kafka
1.下载与安装:
首先需要到Oracle官网下载Goldengate的安装包,然后进行安装。安装完成后,需要在Oracle数据库中创建一个用户用来进行Goldengate的配置。
2.配置Kafka参数:
修改Goldengate根目录下的dirprm目录下的Kafka配置文件KAFKA.properties,主要修改的参数有Kafka的broker地址、topic名称等。
kafka.bootstrap.servers=localhost:9092
##kafka topic name
kafka.translator.kafka_topic=[Your_Topic_Name]
##kafka producer parameters
kafka.producer.security.protocol=PLAINTEXT
kafka.producer.batch.size=0
kafka.producer.linger.ms=50
kafka.producer.compression.type=none
3.配置Oracle参数:
将Goldengate的存储引擎设置为增量提取,并且设置源端数据库连接,此处需要修改全局配置文件ggs_global. properties中的参数。
##GGSCI CONFIGURE GLOBAL PARAMETERS
GGSCI> edit params ./GLOBALS
[...]
##Oracle环境变量设置
SetEnv (ORACLE_SID=[Your_Goldengate_SID])
##最大文件大小限制
extractmaxfilesize 20g
##文件分割方式
extractrollover none
##存储引擎设置
##Oracle EXTTRAIL option
extract ext1,exttrail ./dirdat/aa,
beginscn 3439,checkpointtable xml.CHECKPOINTTABLE,quiet
##数据库连接设置
##Oracle User ID and Password for Extract using SOURCEISTABLE
userid [Your_Oracle_User]/[Your_Oracle_Password], encryptkey [Your_Key_Value]
4. 启动Goldengate提取进程:
启动Goldengate提取进程,指定Oracle为源端,Kafka为目的端,并且指定同步的表以及字段。
GGSCI > start extract ext1
5.启动Goldengate传输进程:
启动Goldengate传输进程,从Kafka获取数据并将其写入到本地的文件中。
GGSCI > start replicat rep1
二、实现Oracle数据同步到Kafka
1.操作Oracle数据库中的数据:
在Oracle数据库中对指定表的数据进行了新增、修改或删除操作,导致表中的数据发生了变化。
2.Goldengate的抓取进程:
Goldengate的抓取进程监听到了Oracle数据库中的数据变化,并将变化的数据封装成了Kafka消息格式,推送到Kafka消息队列中。
3.Kafka消息队列:
在Kafka消息队列中,监听到了Goldengate推送的消息,将其存在Kafka中。
4.Goldengate的同步进程:
Goldengate的同步进程监听到了Kafka消息队列中的消息,将其取出来,并将消息转换为SQL语句,在目标端的Oracle数据库中执行,从而完成了Oracle数据在Kafka消息队列中的实时同步。
