Oracle里存储的结构化数据导出到Hadoop体系做离线计算是一种常见数据处置手段。近期有场景需要做Oracle到Hadoop体系的实时导入,这里以此案例做以介绍。
Oracle作为商业化的数据库解决方案,自发性的获取数据库事务日志等比较困难,故选择官方提供的同步工具OGG(Oracle GoldenGate)来解决。
安装与基本配置
环境说明
软件配置角色数据存储服务及版本OGG版本IP源服务器OracleRelease11.2.0.1Oracle GoldenGate 11.2.1.0 for Oracle on Linux x86-6410.0.0.25
目标服务器Hadoop 2.7.2Oracle GoldenGate for Big Data 12.2.0.1 on Linux x86-6410.0.0.2
以上源服务器上OGG安装在Oracle用户下,目标服务器上OGG安装在root用户下。
注意
Oracle导出到异构的存储系统,如MySQL,DB2,PG等以及对应的不同平台,如AIX,Windows,Linux等官方都有提供对应的Oracle GoldenGate版本,可在这里或者在旧版本查询下载安装。
Oracle源端基础配置
将下载到的对应OGG版本放在方便的位置并解压,本示例Oracle源端最终的解压目录为/u01/gg。配置环境变量
这里的环境变量主要是对执行OGG的用户添加OGG相关的环境变量,本示例为Oracle用户添加的环境变量如下:(/home/oracle/.bash_profile文件)
Oracle打开归档模式
使用如下命令查看当前是否为归档模式(archive)
如非以上状态,手动调整即可
Oracle打开日志相关
OGG基于辅助日志等进行实时传输,故需要打开相关日志确保可获取事务内容。通过一下命令查看当前状态:
如果以上查询结果非YES,可通过以下命令修改状态:
Oracle创建复制用户
为了使Oracle里用户的复制权限更加单纯,故专门创建复制用户,并赋予dba权限
最终这个ggs帐号的权限如下所示:
OGG初始化
进入OGG的主目录执行./ggsci,进入OGG命令行
Oracle创建模拟复制库表
模拟建一个用户叫tcloud,密码tcloud,同时基于这个用户建一张表,叫t_o