Oracle GoldenGate(OGG) 您所在的位置:网站首页 oracle线程有哪些 Oracle GoldenGate(OGG)

Oracle GoldenGate(OGG)

2024-04-02 20:03| 来源: 网络整理| 查看: 265

1. OGG简介

OGG 是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化(数据量只有日志的四分之一左右) OGG 能够实现大量交易数据的实时捕捉,变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟。在这里插入图片描述

2. 应用场景

高可用容灾 数据库迁移、升级(支持跨版本、异构数据库、零宕机时间、亚秒级恢复) 实时数据集成(支持异构数据库、多源数据库)在这里插入图片描述

3. 基本原理

 

 

基于日志捕获技术的实时增量数据集成在这里插入图片描述Oracle GoldenGate 数据复制过程如下:

利用抽取进程(Extract Process)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作 将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中 再利用传输进程将队列文件(trail file)通过TCP/IP传送到目标系统。 目标端有一个进程叫Server Collector,这个进程接受了从源端传输过来的数据变化信息 把信息缓存到GoldenGate 队列文件(trail file)当中,等待目标端的复制进程读取数据。 GoldenGate 复制进程(replicat process)从队列文件(trail file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。

4. 基本架构

Oracle GoldenGate主要由如下组件组成

组件说明 Manager 不管是源端还是目标端必须并且只能有一个Manager进程,可以启动、关闭、监控其他进程的健康状态,报告错误事件、分配数据存储空间,发布阀值报告等,其作用:1:监控与启动 GoldenGate 的其它进程2:管理 trail 文件及 Reporting Extract Extract 进程运行在数据库源端上,它是Golden Gate的捕获机制,可以配置Extract 进程来做如下工作:1:初始数据装载:对于初始数据装载,Extract 进程直接从源对象中提取数据2:同步变化捕获:保持源数据与其它数据集的同步。初始数据同步完成后,Extract 进程捕获源数据的变化;如DML变化、 DDL变化等 Replicat Replicat 进程是运行在目标端系统的一个进程,负责读取 Extract 进程提取到的数据(变更的事务或 DDL 变化)并应用到目标数据库,就像 Extract 进程一样,也可以配置 Replicat 进程来完成如下工作:1:初始化数据装载:对于初始化数据装载,Replicat 进程应用数据到目标对象或者路由它们到一个高速的 Bulk-load 工具上;2:数据同步,将 Extract 进程捕获到的提交了的事务应用到目标数据库中; Collector Collector 是运行在目标端的一个后台进程,接收从 TCP/IP 网络传输过来的数据库变化,并写到 Trail 文件里 Trails 为了持续地提取与复制数据库变化,GoldenGate 将捕获到的数据变化临时存放在磁盘上的一系列文件中,这些文件就叫做 Trail 文件 Data Pumps Data Pump 是一个配置在源端的辅助的 Extract 机制,Data Pump 是一个可选组件,如果不配置 Data Pump,那么由 Extract 主进程将数据发送到目标端的 Remote Trail 文件中;如果配置了 Data Pump,会由 Data Pump将Extract 主进程写好的本地 Trail 文件通过网络发送到目标端的 Remote Trail 文件中

5. 常用的拓扑结构

在这里插入图片描述

单向复制:由一个源数据库复制到一个目的数据库,一般用于高可用性和容灾,为生产机保持一个活动的备份数据库,从而在发生灾难的时候迅速切换,减少数据丢失和系统宕机时间; 双向复制:利用GoldenGate TDM可以实现两个数据库之间数据的双向复制,任何一方的数据变化都会被传递到另一端,可以利用此模式开展双业务中心; 广播复制:由一个数据库向多个数据库复制,利用GoldenGate TDM的数据过滤功能可以实现数据的有选择分发; 集中复制:由多个数据库向一个数据库复制,可以将分布的、跨平台或异构的多个数据库集中到一个数据库。此种模式广泛应用于n+1模式的容灾,通过将多个系统数据库集中到一起,可以充分利用备份中心的设施,大幅减少投资;另外也用于跨平台多系统的数据集成,为这些提供系统提供一个统一视图便于查询和统计数据。 多层复制:由A数据库向B复制,同时又由B向C复制,可以在以上几种模式基础上无限制扩展。

由此可见,GoldenGate TDM的复制模式非常灵活,用户可以根据自己的需求选择特定的复制方式,并根据系统扩展对复制进行扩展。

6. 支持的环境

源和目标的操作系统和数据库可以进行任意的组合在这里插入图片描述

7. OGG安装部署

注:在Docker环境下,整合Oracle,

主机名IPOGG node1 192.168.88.10 源端 node2 192.168.88.20 目标端 7.1 配置Oracle11gR2数据库 7.1.1 Oracle11gR2打开归档模式

 

 

需要切换到oracle用户操作:

1 su - oracle

因为配置数据库需要在sqlplus中执行,所以使用sysdba用户登录:

1 sqlplus / as sysdba 验证数据库是否开启自动归档执行归档查询命令: 1 archive log list

 

 

在这里插入图片描述

Automatic archival是Disabled状态,因为Oracle默认是不开启自动归档的

开启自动归档以DBA的身份连接数据库,执行命令: 1 conn /as sysdba

在这里插入图片描述关闭数据库,执行命令:

1 shutdown immediate

在这里插入图片描述

启动并装载数据库,但没有打开数据文件,该命令常用来修改数据库运行模式或恢复数据库。执行命令:

1 startup mount

 

 

在这里插入图片描述执行开启归档命令:

1 alter database archivelog;

在这里插入图片描述

执行打开数据库命令:

1 alter database open;

在这里插入图片描述

执行自动归档命令:

1 alter system archive log start;

在这里插入图片描述

验证是否开启自动归档成功执行归档查询命令: 1 archive log list

在这里插入图片描述

Automatic archival变成了Enabled状态,表示已经开启自动归档成功

7.1.2 Oracle开启辅助日志和补充日志 验证数据库是否开启辅助日志和补充日志执行SQL语句验证: 1 select force_logging,supplemental_log_data_min from v$database;

在这里插入图片描述当显示NO的时候表示没有开启,需要调整

开启数据库的辅助日志和补充日志开启强制日志后数据库会记录除临时表空间或临时回滚段外所有的操作,命令: 1 alter database force logging;

在这里插入图片描述开启辅助日志命令:

1 alter database add supplemental log data;

在这里插入图片描述开启主键附加日志命令:

1 alter database add supplemental log data (primary key) columns;

开启全列附加日志命令:

1 alter database add supplemental log data (all) columns; 检查数据库是否成功开启辅助日志和补充日志执行SQL语句验证: 1 select force_logging,supplemental_log_data_min from v$database;

在这里插入图片描述当显示为YES的时候表示开启成功。

7.2 安装OGG源端 7.2.1 解压和安装OGG源端软件包 创建OGG源端的目录,使用root用户创建: 1 mkdir /u01/app/ogg/src 添加OGG源端的目录到oracle用户的环境变量中(需要切换到oracle用户操作) 123456789 su - oracle

vim ~/.bash_profileexport OGG_SRC_HOME=/u01/app/ogg/srcexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib source ~/.bash_profile# 退出oracle用户shell命令:exit

在这里插入图片描述

解压OGG源端软件OGG源端的软件包是V34339-01.zip,存放在/export/softwares/oracle/ogg目录下。需要使用root用户解压 1 cd /export/softwares/oracle/ogg

创建src文件夹是用来存放解压后的OGG源端软件

1 mkdir /export/softwares/oracle/ogg/src/

解压OGG源端软件到src文件夹下

1 unzip /export/softwares/oracle/ogg/V34339-01.zip -d /export/softwares/oracle/ogg/src/

 

 

在这里插入图片描述

1 cd /export/softwares/oracle/ogg/src/

在这里插入图片描述fbo_ggs_Linux_x64_ora11g_64bit.tar文件才是OGG源端的软件包,解压该文件到/u01/app/ogg/src目录下,执行命令:

1 tar -xf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /u01/app/ogg/src 配置/u01/app/ogg/src目录及其所有文件的权限使用root用户执行授权命令: 1 chown -R oracle:oinstall /u01/app/ogg/src

在这里插入图片描述

可以看到/u01/app/ogg/目录下的src属于oracle用户和oinstall组在这里插入图片描述

可以看到/u01/app/ogg/src目录下的所有文件都属于oracle用户和oinstall组

7.2.2 在Oracle中创建OGG相关的用户和表空间

创建表空间在磁盘中的物理路径(需要到root用户操作)

12 mkdir -p /u01/app/oracle/oggdata/orcl/chown -R oracle:oinstall /u01/app/oracle/oggdata/orcl

进入sqlplus切换到oracle用户:

1 su - oracle

登录sqlplus:sqlplus “/as sysdba”创建oggtbs表空间

1 create tablespace oggtbs datafile '/u01/app/oracle/oggdata/orcl/oggtbs.dbf' size 500M autoextend on;

在这里插入图片描述创建ogg用户(用户名和密码都是ogg)

1 create user ogg identified by ogg default tablespace oggtbs;

在这里插入图片描述

赋予ogg用户dba权限

1 grant dba to ogg;

在这里插入图片描述

7.2.3 OGG源端初始化

使用oracle用户登录源端OGG的命令行中

123 su – oraclecd $OGG_SRC_HOME./ggsci

在这里插入图片描述初始化源端OGG目录注意:如果不在OGG_SRC_HOME下,初始化OGG目录时会报错

1 create subdirs

在这里插入图片描述退出OGG命令行客户端:exit在这里插入图片描述检查源端OGG初始化后的目录初始化完成后,可以查询在$OGG_SRC_HOME下是否存在dirchk、dirdat、dirdef、dirjar、dirout、dirpcs、dirprm、dirrpt、dirsql、dirtmp共11个目录。在这里插入图片描述

7.3 配置OGG源端 7.3.1 Oracle创建测试表 1234 #切换到oracle用户:su – oracle#登录sqlplus:sqlplus "/as sysdba" 12345678 #在oracle中创建test_ogg用户:create user test_ogg identified by test_ogg default tablespace users;#为test_ogg用户授权:grant dba to test_ogg;#使用test_ogg用户登录:conn test_ogg/test_ogg;#创建test_ogg表:create table test_ogg(id int ,name varchar(20),primary key(id));

在这里插入图片描述

7.3.2 配置OGG的全局变量 使用oracle用户进入OGG_SRC_HOME目录下 123456 #切换到oracle用户下:su – oracle#打印源端OGG_SRC_HOME:echo $OGG_SRC_HOME#进入OGG_SRC_HOME:cd $OGG_SRC_HOME

在这里插入图片描述

进入源端OGG命令行 1 ./ggsci

在这里插入图片描述

使用oracle中的ogg用户登录 1 dblogin userid ogg password ogg

在这里插入图片描述

配置全局变量 1 edit param ./globals

在这里插入图片描述

oggschema ogg

然后跟使用vi一样,在新窗口中添加oggschema ogg后保存退出编辑

7.3.3 配置管理器MGR进程 进入源端OGG命令行 1 ./ggsci

 

 

创建mgr进程:

1 edit param mgr

PORT 7809DYNAMICPORTLIST 7810-7909AUTORESTART EXTRACT ,RETRIES 5,WAITMINUTES 3PURGEOLDEXTRACTS ./dirdat/,usecheckpoints, minkeepdays 3

在这里插入图片描述

参数名称参数说明 PORT mgr的默认监听端口 DYNAMICPORTLIST 当指定的mgr端口不可用时,会在这个端口列表中选择一个,最大指定范围为256个 AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3 重启EXTRACT进程的参数,最多5次,每次间隔3分钟 PURGEOLDEXTRACTS TRAIL文件的定期清理 7.3.4 添加复制表 进入源端OGG命令行 1234 ./ggsci

add trandata test_ogg.test_ogginfo trandata test_ogg.test_ogg

在这里插入图片描述

7.3.5 配置extract进程

配置Extract进程:

1 edit param extkafka

新增内容:

1 extract extkafka

dynamicresolutionSETENV (ORACLE_SID = “orcl”)SETENV (NLS_LANG = “american_america.AL32UTF8”)userid ogg,password oggexttrail /u01/app/ogg/src/dirdat/totable test_ogg.test_ogg;

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

参数名称参数说明 extract extkafka 定义extract进程名称 dynamicresolution 启用动态解析 SETENV (ORACLE_SID = “orcl”) 设置Oracle数据库 SETENV (NLS_LANG = “american_america.AL32UTF8”) 设置字符集 userid ogg,password ogg OGG连接Oracle数据库的帐号密码 exttrail /u01/app/ogg/src/dirdat/to 定义trail文件的保存位置以及文件名,文件字母最多2个,否则会报错 table test_ogg.test_ogg; 复制表的表名,支持*通配,必须以;结尾

添加Extract进程:

1 add extract extkafka,tranlog,begin now

在这里插入图片描述

将trail文件配置与extract进程绑定:

1 add exttrail /u01/app/ogg/src/dirdat/to,extract extkafka

在这里插入图片描述

7.3.6 配置pump进程

配置Pump进程:

1 edit param pukafka

新增内容:

extract pukafkapassthrudynamicresolutionuserid ogg,password oggrmthost localhost mgrport 7809rmttrail /u01/app/ogg/tgr/dirdat/totable test_ogg.test_ogg;

在这里插入图片描述?extract进程名称;passthru即禁止OGG与Oracle交互,我们这里使用pump逻辑传输,故禁止即可;dynamicresolution动态解析;userid ogg,password ogg即OGG连接Oracle数据库的帐号密码rmthost和mgrhost即目标端(kafka)OGG的mgr服务的地址以及监听端口;rmttrail即目标端trail文件存储位置以及名称。

参数名称参数说明 extract pukafka 定义pump进程名称 passthru 因使用了pump逻辑传输,所以禁止OGG与Oracle交互 dynamicresolution 配置动态解析 userid ogg,password ogg OGG连接Oracle数据库的帐号密码 rmthost localhost mgrport 7809 目标端OGG的mgr服务的地址以及监听端口 rmttrail /u01/app/ogg/tgr/dirdat/to 目标端OGG的trail文件存储位置以及名称 table test_ogg.test_ogg; 要采集的表,必须使用;结尾

将源端trail文件绑定到Extract进程:

1 add extract pukafka,exttrailsource /u01/app/ogg/src/dirdat/to

在这里插入图片描述将目标端trail文件绑定到Extract进程:

1 add rmttrail /u01/app/ogg/tgr/dirdat/to,extract pukafka

在这里插入图片描述

7.3.7 配置define文件

?注意:该文件用来在异构数据源之间传输时,需明确知道表之间的映射关系,比如:Oracle与MySQL,Hadoop集群(HDFS,Hive,kafka等)等之间数据传输可以定义为异构数据类型的传输,故需要定义表之间的关系映射,在OGG命令行执行:

配置define文件:

1 edit param test_ogg

defsfile /u01/app/ogg/src/dirdef/test_ogg.test_ogguserid ogg,password oggtable test_ogg.test_ogg;

在这里插入图片描述生成表schema文件:(在OGG_SRC_HOME目录下执行(oracle用户))

1 ./defgen paramfile dirprm/test_ogg.prm

在这里插入图片描述将生成的/u01/app/ogg/src/dirdef/test_ogg.test_ogg发送的目标端ogg目录下的dirdef里:

1 scp -r /u01/app/ogg/src/dirdef/test_ogg.test_ogg   /u01/app/ogg/tgr/dirdef/

因为目标端目录还没有创建,因此发送文件可能会失败,所以执行完目标端配置后发送即可

7.4 配置OGG目标端 7.4.1 解压和安装OGG目标端软件包 创建OGG目标端的目录使用root用户创建: 1 mkdir /u01/app/ogg/tgr 添加OGG目标端的目录到oracle用户的环境变量中从root用户切换到oracle用户: 1 su oracle

注意【非常重要】:在这里,需要调整oracle用户的.bash_profile,主要是更新LD_LIBRARY_PATH的值,来确保源端和目标端的ggsci命令都可以正常使用。如果不更新的话,目标端ggsci命令可以使用,但源端的ggsci命令无法使用,会报错./ggsci: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory

在这里插入图片描述

123456789 vim ~/.bash_profile

export OGG_TGR_HOME=/u01/app/ogg/tgrexport LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server:$JAVA_HOME/jre/lib/amd64/libjsig.so:$JAVA_HOME/jre/lib/amd64/server/libjvm.so:$ORACLE_HOME/lib:/usr/lib

source  ~/.bash_profile

#退出oracle用户shell命令:exit

在这里插入图片描述

解压OGG目标端软件OGG源端的软件包是V971332-01.zip,存放在/export/softwares/oracle/ogg目录下。需要使用root用户解压 1 cd /export/softwares/oracle/ogg

创建tgr文件夹是用来存放解压后的OGG目标端软件

1 mkdir -p /export/softwares/oracle/ogg/tgr/

解压OGG目标端软件到tgr文件夹下

1 unzip /export/softwares/oracle/ogg/V971332-01.zip -d /export/softwares/oracle/ogg/tgr/

在这里插入图片描述

1 cd /export/softwares/oracle/ogg/tgr/

在这里插入图片描述ggs_Adapters_Linux_x64.tar文件是真正的OGG目标端软件包,解压该文件到/u01/app/ogg/tgr目录下,执行命令:

1 tar -xf ggs_Adapters_Linux_x64.tar -C /u01/app/ogg/tgr/ 配置/u01/app/ogg/tgr目录及其所有文件的权限解压后的默认用户和组在这里插入图片描述使用root用户执行授权命令: 1 chown -R oracle:oinstall /u01/app/ogg/tgr

在这里插入图片描述可以看到/u01/app/ogg/目录下的tgr属于oracle用户和oinstall组。

1 ll /u01/app/ogg/tgr

在这里插入图片描述可以看到/u01/app/ogg/tgr目录下的所有文件都属于oracle用户和oinstall组。

7.4.2 OGG目标端初始化 使用oracle用户登录目标端OGG的命令行中可以看到/u01/app/ogg/目录下的tgr属于oracle用户和oinstall组。 1 su oracle

切换oracle用户时需要重新加载环境变量:

123 source ~/.bash_profilecd $OGG_TGR_HOME./ggsci

在这里插入图片描述

初始化目标端OGG目录注意:如果不在OGG_TGR_HOME下,初始化目标端OGG目录时会报错 1 create subdirs

在这里插入图片描述退出OGG命令行客户端:exit

检查目标端OGG初始化后的目录初始化完成后,可以查询在$OGG_TGR_HOME下是否存在dirchk、dircrd、dirdat、dirdef、dirdmp、diretc、dirout、dirpcs、dirprm、dirrpt、dirsql、dirtmp、dirwlt、dirwww共14个目录。 7.4.3 拷贝源端的define文件到目标端

将生成的/u01/app/ogg/src/dirdef/test_ogg.test_ogg发送的目标端ogg目录下的dirdef里:

1 scp -r $OGG_SRC_HOME/dirdef/test_ogg.test_ogg $OGG_TGR_HOME/dirdef/ 7.4.4 安装zookeeper和Kafka 安装ZooKeeper(使用root用户操作)解压: 1 tar -zxf /export/softwares/zookeeper-3.4.14.tar.gz -C /export/services/

创建软连接:

1 ln -s /export/services/zookeeper-3.4.14 /export/services/zookeeper

创建zoo.cfg:

1 cp /export/services/zookeeper/conf/zoo_sample.cfg /export/services/zookeeper/conf/zoo.cfg

配置zoo.cfg:

1 vim /export/services/zookeeper/conf/zoo.cfg

tickTime=2000initLimit=10syncLimit=5dataDir=/export/datas/zookeeper/datadataLogDir=/export/datas/zookeeper/logclientPort=2181

创建ZooKeeper的数据路径:

12 mkdir -p /export/datas/zookeeper/datamkdir -p /export/datas/zookeeper/log

添加到环境变量:

1 vim /etc/profile

export ZOOKEEPER_HOME=/export/services/zookeeperexport PATH=.:

Z

O

O

K

E

E

P

E

R

H

O

M

E

/

b

i

n

:

ZOOKEEPER_HOME/bin:

ZOOKEEPERH?OME/bin:JAVA_HOME/bin:

J

A

V

A

H

O

M

E

/

j

r

e

/

b

i

n

:

JAVA_HOME/jre/bin:

JAVAH?OME/jre/bin:PATH

1 source /etc/profile

启动ZooKeeper:

12 zkServer.sh startzkServer.sh status 安装kafka(使用root用户操作)解压: 1 tar -zxf /export/softwares/kafka_2.11-2.2.0.tgz  -C /export/services/

创建软连接:

1 ln -s /export/services/kafka_2.11-2.2.0 /export/services/kafka

配置server.prperties:

1 vim /export/services/kafka/config/server.properties

listeners=PLAINTEXT://server01:9092broker.id=0zookeeper.connect=server01:2181

添加环境变量:

1 vim /etc/profile 12 export KAFKA_HOME=/export/services/kafkaexport PATH=.:\$KAFKA_HOME/bin:\$ZOOKEEPER_HOME/bin:\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH 1 source /etc/profile

启动Kafka:

1 kafka-server-start.sh -daemon /export/services/kafka/config/server.properties

创建主题:

1 kafka-topics.sh --create --zookeeper server01:2181 --replication-factor 1 --partitions 1 --topic test_ogg

查看主题:

1 kafka-topics.sh --list --zookeeper server01:2181 7.4.5 配置管理器MRG进程

使用oracle用户进入OGG_SRC_HOME目录下切换到oracle用户下:

1 su – oracle

打印目标端OGG_TGR_HOME:

1 echo $OGG_TGR_HOME

进入OGG_TGR_HOME:

1 cd $OGG_TGR_HOME

启动ggsci:

1 ./ggsci

配置目标端MRG进程配置MGR进程:

1 edit param mgr

新增内容:

PORT 7810DYNAMICPORTLIST 7810-7909AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3

在这里插入图片描述

7.4.6 配置checkpoint 1 edit param ./GLOBALS

新增内容:

CHECKPOINTTABLE test_ogg.checkpoint

在这里插入图片描述

7.4.7 配置Replicate进程

配置目标端Replicate进程配置replicate进程:

1 edit param rekafka

REPLICAT rekafkasourcedefs /u01/app/ogg/tgr/dirdef/test_ogg.test_oggTARGETDB LIBFILE libggjava.so SET property=dirprm/kafka.propsREPORTCOUNT EVERY 1 MINUTES, RATEGROUPTRANSOPS 10000MAP test_ogg.test_ogg, TARGET test_ogg.test_ogg;

在这里插入图片描述

7.4.8 添加trail文件到replicate进程

添加trail文件到Replicate进程

1 add replicat rekafka exttrail /u01/app/ogg/tgr/dirdat/to,checkpointtable test_ogg.checkpoint

在这里插入图片描述

7.4.9 配置kafka.props 配置kafka.props 12 cd $OGG_TGR_HOMEvim dirprm/kafka.props

新增内容:

gg.handlerlist=kafkahandlergg.handler.kafkahandler.type=kafkagg.handler.kafkahandler.KafkaProducerConfigFile=custom_kafka_producer.propertiesgg.handler.kafkahandler.topicMappingTemplate=test_ogggg.handler.kafkahandler.format=jsongg.handler.kafkahandler.mode=opgg.classpath=dirprm/:/export/services/kafka/libs/*:/u01/app/ogg/tgr/:/u01/app/ogg/tgr/lib/*

在这里插入图片描述

配置custom_kafka_producer.properties 12 cd $OGG_TGR_HOMEvim dirprm/custom_kafka_producer.properties

新增内容:

12345678 bootstrap.servers=server01:9092acks=1compression.type=gzipreconnect.backoff.ms=1000value.serializer=org.apache.kafka.common.serialization.ByteArraySerializerkey.serializer=org.apache.kafka.common.serialization.ByteArraySerializerbatch.size=102400linger.ms=10000

在这里插入图片描述

7.4.10 最后确认所有的进程

在目标端,主要做了4个操作,共包括2个进程,分别是MANAGER和REPLICAT。在这里插入图片描述

7.5 OGG测试 7.5.1 启动OGG的源端和目标端

前提:切换到 oracle 账号且启动了 Oracle注意:要严格按照启动顺序执行:

第一步:启动源端mgr进程 第二步:启动目标端mgr进程 第三步:启动源端extract进程 第四步:启动源端pump进程 第五步:启动目标端replicate进程 启动源端mgr进程 12345678 cd $OGG_SRC_HOME./ggsci#查看所有进程状态:info all#启动MANAGER进程:start mgr#检查所有进程状态:info all

在这里插入图片描述

启动目标端mgr进程 1234567 cd $OGG_TGR_HOME./ggsci

#启动MANAGER进程:start mgr#查看所有进程状态:info all

在这里插入图片描述3. 启动源端extract进程

123456 cd $OGG_SRC_HOME./ggsci#启动EXTRACT进程:start extkafka#查看所有进程状态:info all

在这里插入图片描述

启动源端pump进程启动pump进程: 1 start pukafka

查看所有进程状态:

1 info all

在这里插入图片描述

启动目标端replicat进程 12 cd $OGG_TGR_HOME./ggsci

启动replicat进程:

1 start rekafka

查看所有进程状态:

1 info all

在这里插入图片描述

确认源端和目标端进程运行情况源端:在这里插入图片描述目标端:在这里插入图片描述 7.5.2 测试OGG的数据采集 使用oracle用户登录到oracle11g数据库(源端) 123 su – oraclesqlplus "/as sysdba"conn test_ogg/test_ogg

在这里插入图片描述

对表进行DML操作(每一条SQL都需要手动执行commit提交)登录到test_ogg用户下: 1 conn test_ogg/test_ogg

在这里插入图片描述查看该用户拥有的表:

1 select table_name from user_tables;

在这里插入图片描述查看TEST_OGG表的字段信息:

1 select column_name,data_type from user_tab_columns where table_name = upper('TEST_OGG');

在这里插入图片描述插入数据:

1 insert into test_ogg values(1,'beijing');

在这里插入图片描述执行Commit:

1 commit;

在这里插入图片描述查看kafka是否多出了一个叫做test_ogg的主题:

1 kafka-topics.sh --list --zookeeper server01:2181

在这里插入图片描述然后启动kafka的消费者来消费test_ogg主题的数据:

1 kafka-console-consumer.sh --bootstrap-server server01:9092 --topic test_ogg --from-beginning

再查看kafka的test_ogg主题下是否有了数据:在这里插入图片描述执行修改数据(修改id=2的name为china-shanghai):

1 update test_ogg set name='china-shanghai' where id=2;

在这里插入图片描述查看kafka中是否有了id为2的china-shanghai的这条记录:在这里插入图片描述删除id为2的数据:

1 delete test_ogg where id=2;

在这里插入图片描述检查kafka是否多个一条被标记为删除的数据:在这里插入图片描述

12 :{"table":"TEST_OGG.TEST_OGG","op_type":"I","op_ts":"2020-05-28 09:22:18.000129",{"table":"TEST_OGG.TEST_OGG","op_type":"U","op_ts":"2020-05-28 09:25:17.000140","current_ts":"2020-05-28T09:25:22.085000","pos":"00000000000000001227","before":{},"after":{"ID":1,"NAME":"china-shanghai"}} 关于数据文件的检查如果数据库中发生了事务(都被commit后)操作,会在源端和目标端的dirdat下生成trail数据文件。数据文件名称只能使用2个字母,多了会报错。当源端发生事务后,检查源端的trail文件: 1 ll /u01/app/ogg/src/dirdat/

在这里插入图片描述目标端会接收到源端pump进程传过来的数据文件:

1 ll /u01/app/ogg/tgr/dirdat/

在这里插入图片描述

7.5.3 注意事项 必须严格遵守OGG的启动顺序; 必须严格遵守OGG的关闭顺序; 如果需要修改OGG的进程,必须先停止,修改成功后,再重启; 7.5.4 错误日志位置

源端错误日志路径

/u01/app/ogg/src/ggserr.log

目标端错误日志路径

/u01/app/ogg/tgr/ggserr.log



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有