引用:https://blog.youkuaiyun.com/qq_31312071/article/details/116056488
ogg即Oracle GoldenGate是Oracle的同步工具,本文讲如何配置ogg以实现Oracle数据库增量数据实时同步到kafka中,其中同步消息格式为json。

| 身份 | hostname | 组件和版本 | IP | OGG版本 |
|---|---|---|---|---|
| 源端 | db-oracle | oracle11g | 192.168.10.101 | row 1 col 2 |
| 目标端 | linux121 | kafka_2.12-1.0.2 | 192.168.10.121 | row 1 col 2 |
实时数仓实践(二)OGG同步到kafka
1.下载地址
源端-目标端都可以在以下地址下载,关键词搜索即可
https://edelivery.oracle.com/osdc/faces/SoftwareDelivery
目标端最新版下载
https://www.oracle.com/middleware/technologies/goldengate-downloads.html
源端文件夹名:fbo_ggs_Linux_x64_shiphome
目标端文件夹名:OGG_BigData_Linux_x64_12.3.2.1.1.tar
2.源端添加ogg
## 源端目标端创建文件夹
mkdir /opt/ogg
## 源端
静默安装ogg
[oracle@db-oracle ogg]$ cd /opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/
[oracle@db-oracle response]$ ll
total 8
-rw-r--r--. 1 oracle oinstall 4340 Jul 9 16:14 oggcore.rsp
[oracle@db-oracle response]$ pwd
/opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response
[oracle@db-oracle response]$ vim oggcore.rsp
###主要修改内容:
INSTALL_OPTION=ORA12c --安装选项,如果是oracle11g选择ORA11g
SOFTWARE_LOCATION=/home/oracle/ogg/ggs12_2 --OGG的安装目录,一定要是一个空目录
START_MANAGER=false --是否自动启动mgr管理进程
##开始静默安装
[oracle@db-oracle Disk1]$ ./runInstaller -silent -responseFile /opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp
添加环境变量
为了简单方便起见,我在/etc/profile里配置的,建议在生产中配置oracle的环境变量文件/home/oracle/.bash_profile里配置,为了怕出问题,我把OGG_HOME等环境变量在/etc/profile配置了一份,不知道这是否是必须的。
vi ~/.bash_profile
#oracle
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
#ogg
export OGG_HOME=/opt/ogg
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$OGG_HOME:$PATH
source /etc/profile
###测试一下命令
ggsci
oracle打开归档模式
su - oracle
sqlplus / as sysdba
### 执行下面的命令查看当前是否为归档模式
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 12
Current log sequence 14
如果Automatic archival Disabled,执行下面打开
conn / as sysdba (以DBA身份连接数据库)
shutdown immediate (立即关闭数据库)
startup mount (启动实例并加载数据库,但不打开)
alter database archivelog; (更改数据库为归档模式)
alter database open; (打开数据库)
alter system archive log start; (启用自动归档)
在执行一下
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 12
Next log sequence to archive 14
Current log sequence 14
Oracle打开日志相关
OGG基于辅助日志等进行实时传输,故需要打开相关日志确保可获取事务内容,通过下面的命令查看该状态
select force_logging, supplemental_log_data_min from v$database;
FORCE_ SUPPLEMENTAL_LOG
------ ----------------
NO NO
## 如果为no,执行以下
alter database force logging;
alter database add supplemental log data;
#再查一遍
SQL> select force_logging, supplemental_log_data_min from v$database;
FORCE_ SUPPLEMENTAL_LOG
------ ----------------
YES YES
oracle创建复制用户
首先root用户建立相关文件夹,并赋予权限
mkdir -p /data/oracle/tablespace
chown -R oracle:oinstall /data/oracle/tablespace
然后执行下面sql
SQL> create tablespace oggtbs datafile '/data/oracle/tablespace/oggtbs01.dbf' size 2000M autoextend on;
Tablespace created.
SQL> create user ogg identified by 123456 default tablespace oggtbs;
SQL> grant dba to ogg;
3.OGG初始化
这里特别注意源端和目标端的ogg目录要保持一致
ggsci
GGSCI (db-oracle) 1> create subdirs
Creating subdirectories under current directory /root
Parameter files /opt/ogg/dirprm: created
Report files /opt/ogg/dirrpt: created
Checkpoint files /opt/ogg/dirchk: created
Process status files /opt/ogg/dirpcs: created
SQL script files /opt/ogg/dirsql: created
Database definitions files /opt/ogg/dirdef: created
Extract data files /opt/ogg/dirdat: created
Temporary files /opt/ogg/dirtmp: created
Stdout files /opt/ogg/dirout: created
GGSCI (db-oracle) 2>
Oracle创建测试表
//test_ogg和上面的ogg两个用户
create user test_ogg identified by test_ogg default tablespace users;
grant dba to test_ogg;
conn test_ogg/te
1215



被折叠的 条评论
为什么被折叠?



