## 利用ogg实现oracle到kafka的增量数据实时同步
#### 前言
> ogg即Oracle GoldenGate是Oracle的同步工具,本文讲如何配置ogg以实现Oracle数据库增量数据实时同步到kafka中,其中同步消息格式为json。
下面是源端和目标端的一些配置信息:
| -- | 版本 | OGG版本 | IP | 别名 |
| :--------- | :--: | -----------: | :-------------: | :---------: |
| 源端 | OracleRelease 11.2.0.1.0 | Oracle GoldenGate 12.3.0.1.4 for Oracle on Linux x86-64 | 192.168.226.138 | oraclepc |
| 目标端 | kafka_2.11-0.10.2.2 | Oracle GoldenGate for Big Data 12.3.0.1.0 on Linux x86-64 | 192.168.226.139 | streamsets |
#### 效果
###### 源端
- 源端事务型操作
![这里写图片描述](files/images/源端数据库插入修改删除操作.png)
- 目标端kafka流数据
![这里写图片描述](files/images/目标端kafka消息输出结果.png)
#### 1、下载
**下载地址:**
- [GodenGate for Oracle](http://www.oracle.com/splash/www/index.html?nexturl=http://download.oracle.com/otn/goldengate/12301/123014_fbo_ggs_Linux_x64_shiphome.zip)
- [GodenGate for BigData](https://download.oracle.com/otn/goldengate/123010/123010_ggs_Adapters_Linux_x64.zip?AuthParam=1598656891_bc5d7149964b0f9171e75e115333c8fa)
#### 2、源端配置
_注意:源端是安装了oracle的机器,oracle环境变量之前都配置好了_
###### 2.1 解压\安装
**先建立ogg目录**
```$xslt
mkdir -p /opt/ogg
chown -R oracle:oinstall /opt/ogg (使oracle用户有ogg的权限,后面有些需要在oracle用户下执行才能成功)
unzip 123014_fbo_ggs_Linux_x64_shiphome.zip
```
**解压后得到OGG安装文件夹**
```$xslt
cd /opt/ogg/fbo_ggs_Linux_x64_shiphome
```
**修改静默安装配置**
**修改/opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp文件内容如下:**
```sbtshell
#不要修改这个值
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v12_1_2
#根据系统是12c还是11g选择ORA12c或者ORA11g
INSTALL_OPTION=ORA11g
#写上goldengate的安装目录
SOFTWARE_LOCATION=/opt/ogg/
#是否在配置完成后自动启动mgr进程,是就选true,否就选false
START_MANAGER=false
#在start_manager为true时添加,选择mgr启动端口号
MANAGER_PORT=
#在start_manager为true时添加,写上$ORACLE_HOME的值
DATABASE_LOCATION=$ORACLE_HOME
#如果在安装goldengate前没有安装过其他Oracle产品再填写以下两个参数
INVENTORY_LOCATION=/data/oracle/inventory
UNIX_GROUP_NAME=oinstall
```
###### 启动静默安装
```sbtshell
cd /opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1
./runInstaller -silent -responseFile /opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp
```
之后开始安装
这时候会提示一个安装日志
```sbtshell
You can find the log of this install session at:
/oracle/app/oraInventory/logs/installActions2020-08-29_11-26-16AM.log
可以使用 tail -100f /oracle/app/oraInventory/logs/silentInstall2020-08-29_11-26-16AM.log来查看安装情况
安装完成后,安装命令执行页面会输出以下内容:
The installation of Oracle GoldenGate Core was successful.
Please check '/data/oracle/oraInventory/logs/silentInstall2020-08-29_11-26-16AM.log' for more details.
Successfully Setup Software.
```
###### 2.2 配置ogg环境变量
> 为了简单方便起见,在/etc/profile里配置的,建议在生产中配置oracle的环境变量文件/home/oracle/.bash_profile里配置,为了怕出问题,我把OGG_HOME等环境变量在/etc/profile配置了一份。
```sbtshell
vim /etc/profile
```
```sbtshell
export OGG_HOME=/opt/ogg
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$OGG_HOME:$PATH
```
使之生效
```sbtshell
source /etc/profile
```
测试一下ogg命令
```sbtshell
ggsci
```
###### 2.3 oracle打开归档模式
```sbtshell
su oracle
source ~/.bash_profile
sqlplus / as sysdba
```
执行下面的命令查看当前是否为归档模式
```sbtshell
archive log list
```
``&