OGG将Oracle全量同步到kafka

news2024/11/23 18:45:19

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.部署环境
      • ✨ 1.1 架构规划
      • ✨ 1.2 服务规划
    • 📣 2.Oracle相关配置
      • ✨ 2.1 参数调整
      • ✨ 2.2 新增用户
    • 📣 3.kafka环境
    • 📣 4.OGG for Oracle
      • ✨ 4.1 创建身份证明
      • ✨ 4.2 添加表附加日志
      • ✨ 4.3 进程配置
    • 📣 5.OGG for Bigdata
      • ✨ 5.1 配置主进程
      • ✨5.2 kafka端配置
    • 📣 6.全量同步
    • 📣 7.Kafka确认

前言

近期给客户实施大数据,本文详细阐述了将Oracle全量同步到kafka的过程

📣 1.部署环境

✨ 1.1 架构规划

![在这里插入图片描述](https://img-blog.csdnimg.cn/37dd7893fde44a73a8753f432363c8e5.png)

✨ 1.2 服务规划

主机名IP操作系统内存/空间角色说明
ora11204172.18.12.30centos7.82c/18G 400G源端Oracle 11GR2 (11.2.0.4)
kafka172.18.12.31centos7.82c/18G 400G大数据平台kafka3.5.0
ogg21all172.18.12.32centos7.82c/18G 400GOGGOGG for Oracle/bigdata
dbbench172.18.12.33centos7.82c/18G 400G压力测试sysbench 1.0.17

📣 2.Oracle相关配置

✨ 2.1 参数调整

-- oracle数据库配置
1.开启数据库归档--如果没有开启
2.开启数据库级别附加日志--如果没有开始最小附加日志
3.开启强制日志--如果没有开启强制日志
4.设置ENABLE_GOLDENGATE_REPLICAT参数为TRUE
5.创建OGG用户包括包括源端用户、目标端用户以及OGG抽取用户


alter database add supplemental log data;
alter database add supplemental log data (all) columns;
alter database force logging;
alter system set enable_goldengate_replication=TRUE;

##开归档

mkdir -p /u01/app/oracle/arch 

SYS@JEM11GR2> shutdown immediate; 
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@JEM11GR2> startup mount; 
ORACLE instance started.

Total System Global Area  409194496 bytes
Fixed Size                  2253744 bytes
Variable Size             310381648 bytes
Database Buffers           92274688 bytes
Redo Buffers                4284416 bytes
Database mounted.
SYS@JEM11GR2> alter database archivelog; 

Database altered.

SYS@JEM11GR2> alter system set log_archive_dest_1='location=/u01/app/oracle/arch';
System altered.

SYS@JEM11GR2> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/oracle/arch
Oldest online log sequence     3
Next log sequence to archive   5
Current log sequence           5

SYS@JEM11GR2> alter database open;

Database altered.


SYS@JEM11GR2> select name,supplemental_log_data_min , force_logging, log_mode from v$database;

NAME               SUPPLEMENTAL_LOG FORCE_ LOG_MODE
------------------ ---------------- ------ ------------------------
JEM11GR2           YES              YES    ARCHIVELOG


##关闭回收站
SQL> SHOW PARAMETER recyclebin;
SQL> ALTER SYSTEM SET recyclebin = OFF SCOPE = SPFILE;
SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
IMAGE_LOB        BIN$CWQtAJlQCH3gYx4MEqylGQ==$0 TABLE        2023-11-05:08:03:41
SQL> PURGE recyclebin;

✨ 2.2 新增用户

-- OGG管理用户
CREATE USER ogg identified by oracle;
GRANT DBA to ogg;
grant SELECT ANY DICTIONARY to ogg;
GRANT EXECUTE ON SYS.DBMS_LOCK TO ogg;
grant select any transaction to ogg;
grant select any table to ogg;
grant flashback any table to ogg;
grant alter any table to ogg;

-- 业务用户
CREATE USER rptuser identified by oracle;
alter user sys identified by oracle;
GRANT DBA to rptuser ;
grant SELECT ANY DICTIONARY to rptuser;
GRANT EXECUTE ON SYS.DBMS_LOCK TO rptuser;


-- 启动监听
[oracle@jemora11204 ~]$ lsnrctl start
[oracle@jemora11204 ~]$ lsnrctl status

📣 3.kafka环境

1.启动进程
/usr/local/kafka/kafka_2.13-3.5.1/bin/zookeeper-server-start.sh -daemon /usr/local/kafka/kafka_2.13-3.5.1/config/zookeeper.properties
/usr/local/kafka/kafka_2.13-3.5.1/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.13-3.5.1/config/server.properties

[root@kafka /]# netstat -nta|grep 2181
tcp        0      0 0.0.0.0:2181            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:2181          127.0.0.1:57458         TIME_WAIT  
[root@kafka /]# netstat -tna|grep -e 9092 -e 2181
tcp        0      0 0.0.0.0:9092            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:2181            0.0.0.0:*               LISTEN     
tcp        0      0 172.18.12.31:9092       172.18.12.31:56690      ESTABLISHED
tcp        0      0 127.0.0.1:37252         127.0.0.1:2181          ESTABLISHED
tcp        0      0 172.18.12.31:56690      172.18.12.31:9092       ESTABLISHED
tcp        0      0 127.0.0.1:2181          127.0.0.1:37252         ESTABLISHED

[root@kafka /]# jps
1179 Jps
443 QuorumPeerMain

[root@kafka /]# netstat -tulnp | grep java
tcp        0      0 0.0.0.0:9092            0.0.0.0:*               LISTEN      2231/java           
tcp        0      0 0.0.0.0:2181            0.0.0.0:*               LISTEN      443/java            
tcp        0      0 0.0.0.0:42854           0.0.0.0:*               LISTEN      2231/java           
tcp        0      0 0.0.0.0:43337           0.0.0.0:*               LISTEN      443/java

kafka默认占用9092端口,ZK默认占用2181端口。

2.kafka日志
/usr/local/kafka/kafka_2.13-3.5.1/kafka_log


3.测试kafka
#创建主题
cd /usr/local/kafka/kafka_2.13-3.5.1
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic topic --partitions 1
其中--partitions 参数指定分区数。在实际生产环境中,建议将副本数设置为 23,以提高可用性。

#查看主题
./bin/kafka-topics.sh --list --bootstrap-server localhost:9092

##发送消息
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic
>hello
>world

##接收消息
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic --from-beginning
hello
world

📣 4.OGG for Oracle

✨ 4.1 创建身份证明

1.测试登录
sqlplus ogg/oracle@172.18.12.30:1521/JEM11GR2

2.创建身份
su - oracle
ogg
add credentialstore
alter credentialstore add user ogg@172.18.12.30/JEM11GR2, password oracle alias ora11g
INFO CREDENTIALSTORE
dblogin useridalias ora11g

在这里插入图片描述

✨ 4.2 添加表附加日志

dblogin useridalias ora11g
ADD SCHEMATRANDATA RPTUSER
INFO SCHEMATRANDATA RPTUSER
list tables RPTUSER.*

在这里插入图片描述

✨ 4.3 进程配置

– oracle端
edit params exta

EXTRACT exta
USERIDALIAS ora11g
rmthost 127.0.0.1,mgrport 8809
rmttask replicat,group exta
tableexclude RPTUSER.PRODUCTS;
tableexclude RPTUSER.PRODUCT_PRICES;
TABLE RPTUSER.*;

– 启动mgr
start mgr

GGSCI (ogg21all) 4> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
JAGENT STOPPED
PMSRVR STOPPED

📣 5.OGG for Bigdata

✨ 5.1 配置主进程

su - bigdata
ogg

edit params mgr
port 8809
ACCESSRULE, PROG *, IPADDR *, ALLOW

GGSCI (ogg21all) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER STOPPED

✨5.2 kafka端配置

su - bigdata
ogg
edit params repa

REPLICAT repa
targetdb libfile libggjava.so set property=./dirprm/kafka.props
REPLACEBADCHAR SKIP
SOURCECHARSET OVERRIDE GBK
map RPTUSER., target RPTUSER.;

– 配置kafka参数
vi /oggbigdata/dirprm/kafka.props
gg.handler.kafkahandler.schemaTopicName=ORA_OGG

vi /oggbigdata/dirprm/custom_kafka_producer.properties
bootstrap.servers=172.18.12.31:9092

📣 6.全量同步

注意:在此阶段,源端需要停业务,不能产生新数据。
start exta
info exta
view report exta

在这里插入图片描述

📣 7.Kafka确认

#查看主题
cd /usr/local/kafka/kafka_2.13-3.5.1
./bin/kafka-topics.sh --list --bootstrap-server localhost:9092

[root@kafka kafka_2.13-3.5.1]# ./bin/kafka-topics.sh --list --bootstrap-server localhost:9092
ADDRESSES
CARD_DETAILS
CUSTOMERS
IMAGE_LOB
INVENTORIES
LOGON
ORA_OGG
ORDERENTRY_METADATA
ORDERS
ORDER_ITEMS
PRODUCT_DESCRIPTIONS
PRODUCT_INFORMATION
TCUSTMER
TCUSTORD
TSRSLOB
WAREHOUSES
__consumer_offsets
topic

[root@kafka kafka_2.13-3.5.1]# ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic WAREHOUSES
[root@kafka kafka_2.13-3.5.1]# ./bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic WAREHOUSES --from-beginning | wc -l
^CProcessed a total of 1000 messages

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

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

相关文章

C语言之pthread_once实例总结(八十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

ClickHouse介绍和使用

ClickHouse介绍和使用 1. 简介2. ClickHouse特点3. 数据类型3.1. 整型3.2. 浮点型3.3. Decimal型3.4. 布尔型3.5. 字符串3.6. 枚举类型3.7. 时间类型 4. 表引擎4.1. TinyLog4.2. Memory4.3. MergeTree4.3.1. partition by分区(可选)4.3.2. primary key 主…

微信小程序将后端返回的图片文件流解析显示到页面

说明 由于请求接口后端返回的图片格式不是一个完整的url,也不是其他直接能显示的图片格式,是一张图片 后端根据模板与二维码生成图片,返回二进制数据 返回为文件流的格式,用wx.request请求的时候,就自动解码成为了下面这样的数据数据格式,这样的数据没…

Spring的缓存机制-循环依赖

群公告 Java每日大厂面试题: 1、Spring 是如何解决循环依赖? 答案:三级缓存,简单来说,A创建过程中需要B,于是A将自己放到三级缓存里面,去实例化B,B实例化的时候发现需要…

智能AI系统ChatGPT系统源码+支持GPT4.0+支持ai绘画(Midjourney)/支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

交流负载发电机测试

交流负载发电机测试是一种常用的测试方法,用于评估发电机在负载条件下的性能和稳定性。测试过程中需要使用负载设备模拟实际负载,并通过测量电压、电流、功率等参数来评估发电机的输出能力和稳定性。 在进行测试之前,首先需要准备好测试设备和…

30张图详解IP地址网络知识

你们好,我的网工朋友。 IP地址是所有网络初级课程里最先涉及到的技术点,对于IP地址的合理规划是网络设计的重要环节,必须拿捏。 IP地址规划的好坏,影响到网络路由协议算法的效率,影响到网络的性能,影响到网…

短剧出海火爆,Flat Ads独家流量助泛娱乐赛道App迅速获客增长

10月26日,由扬帆出海主办的GICC2023 | 第四届全球互联网产业CEO大会正式圆满落幕,Flat Ads等出海企业应邀参加。 据悉,本届GICC深圳站邀请200CXO行业领袖、300各路优质厂商、1200全球互联网产业代表共聚一堂,聚焦短剧、游戏、泛娱…

最前端|如何使用Plausible实现页面埋点?

目录 一、业务背景 二、业务场景描述 三、解决方案 //如何集成 Plausible ? //如何监控特定功能使用情况? 什么是 MyEventName? //如何向自定义事件传递参数? 一、业务背景 随着公司自研产品的不断发展,对前端页面的监控和…

强力解决使用node版本管理工具 NVM 出现的问题(找不到 node,或者找不到 npm)

强力解决使用node版本管理工具 NVM 出现的问题(找不到 node,或者找不到 npm) node与npm版本对应关系 nvm是好用的Nodejs版本管理工具, 通过它可以方便地在本地调换Node版本。 2020-05-28 Node当前长期稳定版12.17.0,…

适用于Linux桌面歌词应用程序MusixMatch

导读Musixmatch桌面应用程序可用于Linux!不是Linux用户缺少桌面歌词应用程序。包括“即时歌词”和“Lyricfier”,许多开源音乐播放器都会运用某种歌词集成。 但是Musixmatch应用程序与那些有点不同。 Musixmatch的USP是Syncronized歌词 如果您曾经使用…

如何选择高效率的在线分板机主轴?

随着智能移动设备和其他电子3C设备需求的增大,PCB分板机的需要也随之而大增。越来越多的企业开始使用在线分板机来替代传统的手工分板,从而提升了生产效率,提高了产品质量,降低了生产成本。在分板机设备中,高速主轴是关…

Pandas数据预处理Pandas合并数据集在线闯关_头歌实践教学平台

这里写目录标题 第1关 Concat与Append操作第2关 合并与连接第3关 案例:美国各州的统计数据 第1关 Concat与Append操作 任务描述 本关任务:使用read_csv()读取两个csv文件中的数据,将两个数据集合并,将索引设为Ladder列&#xff0…

92. 递归实现指数型枚举

题目 思路 因为有n个数&#xff0c;每个数选或不选都是一种方案&#xff0c;而且要递增输出&#xff0c;那么就标记每个数是否备选&#xff0c;然后判断完n个数以后&#xff0c;就可以输出了 代码 #include<bits/stdc.h> using namespace std; int n; bool f[100] {0…

WEB渲染模式——CSR SSR SSG ISR DPR区别

页面渲染 浏览器渲染页面&#xff0c;根据HTML文档类型声明&#xff08;DOCTYPE&#xff09;解析HTML和CSS&#xff0c;渲染步骤&#xff1a;解析、样式计算、元素布局、绘制、重绘重排。HTML、CSS、JavaScript是网页的三大核心技术。 HTML (Hyper Text Markup Language) 超文…

【沐风老师】3dMax快速平铺纹理插件QuickTiles教程

QuickTiles是3ds max的一个插件&#xff0c;允许您将常规瓷砖纹理转换为交互式纹理&#xff0c;就在mat.editor中。 换言之&#xff0c;您可以根据需要对任何纹理进行修改和重新创建&#xff1a;更改布局、瓷砖大小、格式、颜色、接缝、体积、随机化形状或纹理等等。 这种方法大…

eNsp下如何使用wireshark抓包

文章目录 拓扑图抓包操作 拓扑图 抓包操作 可以通过下图上的指示 来设置 Time列的显示样式。 这里有个缺点就是就是抓取ensp上的虚拟设备上的数据包时的&#xff0c;年月日时间显示的不对。暂时无解决办法。 一般选择 日期和时间&#xff08;日期和时间与当前标准时间对应上时…

集简云平台助力无代码开发,实现平安银行与电商平台、CRM系统的快速连接

无代码开发与平安银行 平安银行是中国内地首家公开上市的全国性股份制银行&#xff0c;经过多年发展&#xff0c;已经在科技引领、综合金融、零售转型等领域形成独特竞争力和鲜明经营特色。近年来&#xff0c;平安银行更是积极拥抱科技&#xff0c;为此&#xff0c;选择了与集…

智慧工地源码 手册文档 app 数据大屏、硬件对接、萤石云

智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VR、AR等技术相结合&#xff0c;为工程项目管理提供先进技术手段&#xff0c;构建工地现场智能监控和控制体系&#xff0c;弥补传统方法在监管中的缺陷&#xff0c;最终实现项目对人、机、料、法、环的全方…

CROS错误 403 preflight 预检

预检 403 响应 Response for preflight 403 forbidden 如上图&#xff0c;配置了请求接口一直报错&#xff0c;前端看了没有什么问题&#xff0c;不知道哪里报错了&#xff0c;那么可能是后端没有设置跨域。&#xff08;或者是设置了&#xff0c;但是可能需要换一种方式&#…