Oracle GoldenGate(简称OGG) 是一个实现异构 IT 环境间数据实时数据集成和复制的综合软件包。目前我的使用场景是将现有的系统数据库中的实时数据(主要是Insert数据)发送到的Kafka中,来实现即时数据比对。当然OGG还支持除Oracle之外的其他主流数据库,同时OGG For Big Data组件也支持实时数据发布到除Kafka之外的大数据组件中,比如HDFS,HIVE,HBASE,ELASTICSEARCH,FLUSH,STORM等等。 以下是我在配置OGG过程中一些简单问题总结,详细配置过程可以参考官方文档。
1 环境变量问题
1.1 源端环境变量
Oracle GoldenGate源端需要ORACLE_HOME,ORACLE_SID环境变量,同时在Path中,添加%ORACLE_HOME%/bin路径。否则会在启动ggsci时无法启动,在windows环境下,会提示缺少dll文件。同时还要注意32bit与64bit不要弄混。Oracle GoldenGate在12c版本已无法找到32bit的windows版本支持。但是如果使用了Oracle 32bit版本,启动ggsci不会提示问题,在ggsci中启动extract进程时,不会有任何提示,包括在ggserr.log文件中也不会有任何输出,仅仅在windows事件查看器-windows日志-应用程序中才可看到提示信息,在调试过程中很是浪费时间。
1.2 目标端环境变量
以Oracle GoldenGate Big Data12.3为例,首先JDK1.8是必须安装的,同时配置JAVA_HOME和PATH。
解压安装Oracle GoldenGate Big Data之后,需要配置OGG_HOME环境变量指向ogg刚才解压之后的安装根目录。
最后一个最重要的是要LD_LIBRARY_PATH配置,如果没配置会在启动时,提示以下错误:
ERROR OGG-15050 Oracle GoldenGate Delivery, r2kafka.prm: Error loading Java VM runtime library: (2 No such file or directory)
因此需要配置LD_LIBRARY_PATH将jvm目录下的动态链接文件加上,以Oracle JDK1.8为例,如下:
export LD_LIBRARY_PATH=/usr/java/jdk1.8.0_131/jre/lib/amd64:/usr/java/jdk1.8.0_131/jre/lib/amd64/server:/usr/java/jdk1.8.0_131/jre/lib/amd64/libjsig.so:/usr/java/jdk1.8.0_1
31/jre/lib/amd64/server/libjvm.so:$LD_LIBRARY_PATH
添加完成,并且使用source将环境变量生效后,还需要重启mgr进程,再重启replicat进程才可以生效。
2 配置文件编写
配置文件编写注意的是,最后需要以分号(";")结尾,同时注意命令,参数之间的空格。
配置文件在保存之后可以使用view查看,并且重新edit之后,只需要重启extract进程,而无需重新add。
3 参考资料的选取
关于配置过程中的参考资料的选取,以官方文档为准是首要的,如果选择google的博客,一定要注意版本问题,尤其是Oracle GoldenGate11g和12c版本中的配置选项均不同,注意选择参考文档和官方文档的对照调试。官方文档链接如下:
http://www.oracle.com/technetwork/cn/middleware/goldengate/documentation/index.html
总体来说,OGG12c在配置过程中非常简化,清晰明了,相比过去采用CDC方式来获取数据库变更事件配置起来要简单很多。
谢谢分享