利用ogg微服务版将oracle同步到kafka

news2025/7/30 9:57:47

ogg微服务版可以再界面上配置抽取、复制进程,不必进入到shell中进行配置,并且图形化界面可以看到更多信息。

系统架构

源端安装ogg for oracle 19C ,
目标端安装ogg for bigdata 21C
kafka 2.2
数据库:19C
所有软件安装在同台服务器上(Oracle Linux7)

源配置-抽取进程

示例数据配置

选取数据库自带的hr相关表作为示例演示(相关表配置有主键),比较符合规范。

sqlplus / as sysdba
alter session set "_ORACLE_SCRIPT"=true;
alter session set container=ORCLPDB1;
@?/demo/schema/human_resources/hr_main.sql

INSTALL OGG FOR ORACLE

#配置环境变量
# User specific aliases and functions
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB
export PATH=$PATH:$ORACLE_HOME/bin
export JAVA_HOME=/home/oracle/jdk1.8.0_351
export PATH=$JAVA_HOME/bin:$PATH 
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server:$LD_LIBRARY_PATH
#别名配置
alias ggsci='rlwrap ggsci'
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl'
alias asmcmd='rlwrap asmcmd'
alias adrci='rlwrap adrci'
#执行安装
sudo unzip /vagrant/$ORACLE_GG_SETUP_FILE -d /u01/ogg-installer
cp /vagrant/ora-response/ogg_install.rsp.tmpl /tmp/oggresponse.rsp
sed -i -e "s|###ORACLE_BASE###|$ORACLE_BASE|g" /tmp/oggresponse.rsp
sed -i -e "s|###ORACLE_HOME###|$ORACLE_HOME|g" /tmp/oggresponse.rsp
chown oracle:oinstall -R /u01/ogg-installer
chown oracle:oinstall -R /u01/ogg
#su -l oracle -c "/u01/ogg-installer/fbo_ggs_Linux_x64_shiphome/Disk1/runInstaller -silent -waitforcompletion -responseFile /tmp/oggresponse.rsp"
su -l oracle -c "/u01/ogg-installer/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1/runInstaller -silent -waitforcompletion -responseFile /tmp/oggresponse.rsp"
echo "export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib" >> /home/oracle/.bashrc
rm -rf /u01/ogg-installer
rm /tmp/oggresponse.rsp
echo 'INSTALLER: Oracle Golden Gate Installed'

配置抽取进程

#1 Go to Oracle golden gate installation directory
cd /u01/ogg
#2 Open golden gate console.
./ggsci
#3 Start manager.
> start mgr
#4 Log in to the database.
> DBLOGIN USERID SYSTEM@localhost:1521/ORCLCDB PASSWORD [password copied while installation]
#5 Register Extract.
> REGISTER EXTRACT EXT1 DATABASE CONTAINER (ORCLPDB1)
#6 Enable schema-level supplemental logging for a table.
> ADD SCHEMATRANDATA ORCLPDB1.HR ALLCOLS
#7 Create an Extract group.
> ADD EXTRACT EXT1, INTEGRATED TRANLOG, BEGIN NOW
#9 Create a trail for online processing on the local system and Associate it with an Extract group.
> ADD EXTTRAIL ./dirdat/lt EXTRACT EXT1
#10 Create EXT1 parameter file and paste the content in the file.
> EDIT PARAM EXT1
EXTRACT EXT1
USERID SYSTEM@ORCLCDB, PASSWORD [password copied during installation]
EXTTRAIL ./dirdat/lt
SOURCECATALOG ORCLPDB1
TABLE HR.*;
#11 Start Extract EXT1.
> start ext1
#12 View status of manager and ext1.
> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING
EXTRACT     RUNNING     EXT1        00:00:00      00:00:00

目标配置-复制进程

安装微服务版

按照步骤参见.先将压缩包解压到一个临时目录,然后切换到临时目录执行安装进程

#配置环境变量
export OGG_HOME=/home/oggbd/ogg_home1
export JAVA_HOME=/home/oracle/jdk1.8.0_351
export PATH=$JAVA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server:$LD_LIBRARY_PATH

#执行安装
[oggbd@oracle-goldengate-1910-vagrant Disk1]$ pwd
/home/oggbd/temp/ggs_Linux_x64_BigData_services_shiphome/Disk1
[oggbd@oracle-goldengate-1910-vagrant Disk1]$ ./r
response/     runInstaller  
[oggbd@oracle-goldengate-1910-vagrant Disk1]$ ./runInstaller 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[oggbd@oracle-goldengate-1910-vagrant ~]$ export OGG_HOME=ogg_home2
[oggbd@oracle-goldengate-1910-vagrant ~]$ cd $OGG_HOME
[oggbd@oracle-goldengate-1910-vagrant ogg_home2]$ cd bin
[oggbd@oracle-goldengate-1910-vagrant bin]$ ./oggca.sh 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个地方要注意下 LD_LIBRARY_PATH,不要重复导入,不然后面会有类冲突。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

执行配置复制进程

用localhost:8002进入,点击+号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#custom_kafka_producer.properties 内容为:
bootstrap.servers=localhost:9092
acks=1
reconnect.backoff.ms=1000

value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
key.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
# 100KB per partition
batch.size=16384
linger.ms=0

创建成功:
在这里插入图片描述
查看相关资源信息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查看kafka

#查看创建的topic
[root@oracle-goldengate-1910-vagrant bin]# ./kafka-topics.sh --zookeeper localhost:2181 --list
REGIONS
RKAFKA.rptmySchemaTopic
__consumer_offsets
mySchemaTopic
#查看同步过来的数据
[root@oracle-goldengate-1910-vagrant bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic REGIONS --from-beginning
&ORCLPDB1.HR.REGIONSI42022-11-15 16:54:43.00000042022-11-15T17:07:12.475000(00000000000000001783REGION_IDFOO
&ORCLPDB1.HR.REGIONSI42022-11-15 17:08:46.00000042022-11-15T17:08:49.231000(00000000000000001934REGION_IDHFOO1
{"table":"ORCLPDB1.HR.REGIONS","op_type":"I","op_ts":"2022-11-15 17:23:24.000000","current_ts":"2022-11-15T17:23:30.319000","pos":"00000000000000002081","after":{"REGION_ID":49,"REGION_NAME":"49"}}
{"table":"ORCLPDB1.HR.REGIONS","op_type":"I","op_ts":"2022-11-15 16:54:43.000000","current_ts":"2022-11-17 17:53:57.390000","pos":"00000000000000001783","after":{"REGION_ID":47,"REGION_NAME":"FOO"}}
{"table":"ORCLPDB1.HR.REGIONS","op_type":"I","op_ts":"2022-11-15 17:08:46.000000","current_ts":"2022-11-17 17:54:00.497000","pos":"00000000000000001934","after":{"REGION_ID":48,"REGION_NAME":"FOO1"}}
{"table":"ORCLPDB1.HR.REGIONS","op_type":"I","op_ts":"2022-11-15 17:23:24.000000","current_ts":"2022-11-17 17:54:00.516000","pos":"00000000000000002081","after":{"REGION_ID":49,"REGION_NAME":"49"}}
{"table":"ORCLPDB1.HR.REGIONS","op_type":"I","op_ts":"2022-11-15 16:54:43.000000","current_ts":"2022-11-17 17:54:01.712000","pos":"00000000000000001783","after":{"REGION_ID":47,"REGION_NAME":"FOO"}}
{"table":"ORCLPDB1.HR.REGIONS","op_type":"I","op_ts":"2022-11-15 17:08:46.000000","current_ts":"2022-11-17 17:54:01.837000","pos":"00000000000000001934","after":{"REGION_ID":48,"REGION_NAME":"FOO1"}}
{"table":"ORCLPDB1.HR.REGIONS","op_type":"I","op_ts":"2022-11-15 17:23:24.000000","current_ts":"2022-11-17 17:54:01.896000","pos":"00000000000000002081","after":{"REGION_ID":49,"REGION_NAME":"49"}}

参考资料

官方文档
The Ultimate Guide To Setup Golden Gate On Vagrant Box
OGG微服务部署配置
【ORACLE】OGG-微服务架构初探1(环境安装)
利用ogg实现oracle到kafka的增量
使用OGG微服务快速双向同步RDS for MySQL数据库
OGG|Oracle GoldenGate 微服务架构
徐靖专栏
袋鼠云金融交付团队-使用ogg实现oracle到kafka的增量数据实时同步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统4小时速成:文件管理,文件结构,属性,基本操作,逻辑有无结构,目录结构,文件系统

操作系统4小时速成:文件管理,文件结构,属性,基本操作,逻辑有无结构,目录结构,文件系统 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能…

2397. 被列覆盖的最多行数-深度优先枚举+二进制检索

2397. 被列覆盖的最多行数-深度优先枚举二进制检索 给你一个下标从 0 开始的 m x n 二进制矩阵 mat 和一个整数 cols ,表示你需要选出的列数。 如果一行中,所有的 1 都被你选中的列所覆盖,那么我们称这一行 被覆盖 了。 请你返回在选择 co…

Spring Security内部工作原理

定义 Spring 安全性是 Spring提供的一个框架,有助于自定义访问和身份验证过程。它在保护应用程序方面起着非常关键的作用。 Spring 安全性,主要侧重于身份验证和授权,为 Java 应用程序提供所有好处。它非常有用,并提供了一种在实…

抑制细胞代谢紊乱的抑制剂

作者团队发现,缺乏 CD4 T 细胞能保护小鼠免受应激诱导的焦虑样行为,物理应激诱导的白三烯 B4 (LTB4) 触发 CD4 T 细胞中的严重线粒体裂变,进而导致各种行为异常,包括焦虑,抑郁和社交障碍。代谢组和单细胞转录组学显示…

Android App实战项目之实现手写签名APP功能(附源码,简单易懂 可直接实用)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、跟踪滑动轨迹实现手写签名 手写签名的原理是把手机屏幕当作画板,把用户手指当作画笔,手指在屏幕上划来划去,屏幕就会显示手指的移动轨迹,就像画笔在画板上写字一样&#…

安装free IPA与CDH6.3.2结合

主机名之类的应该在cdh安装的时候就配好了 不再赘述 安装freeipa yum -y install nscd 修改 enable-cache netgroup no enable-cache group no enable-cache passwd no 云主机默认不开启IPv6,根据提…

小 A 的卡牌游戏(Gym - 103186B)

题 小A最近沉迷于-款名为Hearthverse的卡牌游戏。在这款游戏中,卡被分为了三个种类(随从、法术和魔法阵),在组卡时,这款游戏严格规定了卡组中每种卡牌的数量,具体来说,-副n张卡的卡组需要包含恰好a张随从卡&#xff0…

Tdengine技术实践

1. 什么是时序数据库? 时序数据库全称为时间序列数据库。 即时间序列数据,按时间维度顺序记录且索引的数据。 时间序列数据主要由 电力行业、化工行业、气象行业、地理信息 等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数…

配置Maven环境

Maven官网 Maven所有发行版本 一、windows配置maven环境 想要使用maven就必须要有JDK JDK安装 百度网盘下载(二进制文件,一直点下去) 链接:https://pan.baidu.com/s/1y1AutzJeQGdNHa2ml_bk8w 提取码:scyc验证JDK是…

【Java八股文总结】之Java基础

写在前面: 整份Java八股文的整理贯穿我的整个秋招,希望可以给大家带来帮助,如果对你有一定的作用,欢迎大家转发点赞,谢谢!在复习Java八股文的过程中,有两位老哥的博文对我帮助比较大&#xff0c…

力扣(LeetCode)10. 正则表达式匹配(C++)

动态规划 基于闫式dp分析法。 综上 , f[i][j]{f[i−1][j−1]&&(s[i]p[j]∣∣′.′p[j])if p[j]≠∗f[i][j−2]∣∣(f[i−1][j]&&(s[i]p[j−1]∣∣′.′p[j−1])if p[j]∗f[i][j] \begin {cases} f[i-1][j-1] ~~\&\& ~~(s[i]p[j] ~||~ .p[j])&…

鲁棒局部均值分解 (RLMD)附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

安卓手机丢了,危险了!意外的7万美元的谷歌Pixel绕过锁屏

我发现了一个影响似乎所有谷歌Pixel手机的漏洞,如果你把任何锁定的Pixel设备给我,我可以把它解锁还给你。这个漏洞刚刚在2022年11月5日的安全更新中得到修复。 该问题允许有物理权限的攻击者绕过锁屏保护(指纹、PIN等)&#xff0c…

英国博士后招聘|林肯大学—植物-土壤相互作用

英国林肯大学博士后职位—植物 -土壤相互作用 林肯大学(University of Lincoln),简称“UoL”,是英国一所公立综合性研究型大学,创办于1861年,后与多所大学合并更名为林肯大学。 《独立报》曾评价林肯大学为…

Mysql之性能优化分析

一、避免死锁 1.1、导致mysql死锁的要素 1、两个或者两个以上事务。 2、锁资源只能被同一个事务持有或者多个事务竞争的锁是不兼容的,比如排他锁和共享锁、排他锁和排他锁。 3、每个事务都已经持有锁并且申请新的锁。 4、事务之间因为持有锁和申请锁导致彼此循环等…

Cesium 简介

Cesium 简介 一、Cesium 是什么? Cesium 是一个开源 JavaScript 库,用于 3D , 2D , 2.5D 地图可视化。 Cesium 由 AGI 公司计算机图形开发小组与 2011 年研发的。 Cesium 一词来源于化学元素铯,铯是制造原子钟的关键元素,研发小组…

Vue框架实现对前端数据表的增删改查(第六课)

前端对数据的增删改查你看到过吗?今天带你来实现一下在前端就页面上实现对数据的增伤改查 第一部分功能演示 先看下页面效果 增加一条数据 删除一条数据 修改一条数据 查询指定的一条记录 第二部分 上面的功能该如何实现的呢!首先又是页面改如何展示…

吃豆人游戏-第12届蓝桥杯Scratch选拔赛真题精选

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第79讲。 蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选…

基于PHP+MySQL的在线投票系统设计与实现

随着时代的发展,人们需要获取更多的信息和用户的意见,这时候就会产生一个投票。转托管模式都是人工发传单,然后填写来进行。但是随着互联网的发展,这种模式已经逐渐被淘汰,人们越来越希望通过更加方便快捷的方式来进行在线投票。这就是在线投票系统,这是我们设计本系统一个初衷…

传奇GOM/GEE微端配置外网架设教程

传奇GOM/GEE微端配置外网架设教程 我是艾西,经常听到一些小伙伴说微端需要购买?其实大家理解错了,传奇微端自己就可以搭建的是不需要购买的,如果是说单独架设到另外一台服务器上那么这才是需要收费的俗称微端服务器。主要用于跑带…