Goldengate抽取ORACLE 数据 到 Hbase
1、软件版本说明: Goldengate 12c 12.2.0.1 forOracle (源端 ) Goldengate 12c 12.2.0.1 for Bigdata ( 目标端) Oracle 11g 11.2.0.4.0 (注oracle 数据库必须是11.2.0.4之后的版本,之前的oracle 数据库版本不支持ogg 12c ) HBase1.1.2 Java1.8.0_91 2、机器IP 说明 源端IP地址(192.168.45.176)安装 Oracle 11g 11.2.0.4 , Goldengate 12c 目标端 IP地址(192.168.45.175),安装 hbase,Goldengate 12c ,软件安装 hbase已采用ambari 进行安装,安装过程不作详细说明,在此主要说明下各软件的安装目录,以及使用的端口。 Oracle 12c forOracle (192.168.45.176) 安装目录为:/home/oracle/oggdb Oracle 12c for bigdata (192.168.45.175) 安装目录为:/ogg Hbase安装目录: /usr/hdp/2.4.2.0-258/hbase 3、源端(192.168.45.176的配置 #连接数据库 sqlplus / as sysdba SQL>shutdownimmeidate; SQL>startup mount; #开启归档日志 SQL>alterdatabasearchivelog; SQL>archiveloglist 开启数据库级日志 SQL>alterdatabaseforcelogging; 开启 goldengate 复制功能(注:此参数必须开启,oracle 11.2.0.4 之后的数据库才支持此参数) SQL>altersystemsetenable_goldengate_replication=truescope=both; 关闭 垃圾回收站 SQL>altersystemsetrecyclebin=offscope=spfile; 开启数据库 SQL>alterdatabaSEOpen; #创建ogg 管理用户 SQL> create user oggidentified by ogg account unlock; SQL> grant execute on utl_file to ogg; SQL>grant restricted session to ogg; SQL>grant dba to ogg 进入源端(192.168.45.176)OGG 目录,配置数据初始化。 # cd /home/oracle/oggdb #进入ogg [oracle@sy-bd-061 oggdb]$ ./ggsci #配置源端mgr进程 GGSCI(oracle)10>editparamsmgr PORT7809 配置同步用户 GGSCI(oracle)7>dbloginuseridogg,passwordogg Successfullyloggedintodatabase. #给scott用户下的所有表开启附加日志 GGSCI(oracle)8>addtrandatascott.* 源端配置initload extract 进程 GGSCI(oracle)8>addextractfafainih,sourceistable EXTRACTadded. #配置extract进程 fafainie 参数 extractfafainih useridogg,password ogg rmthost192.168.45.175,mgrport 7809 --rmttaskreplicat,group fafainir RMTFILE./dirdat/hh tablescott.*;
4、目标 端的配置。(192.168.45.175) #在用户家目录下的 ~/.bash_profile中配置用户的JAVA_HOME,以及LIB_PATH 环境变量。 exportJAVA_HOME=/usr/java/jdk1.8.0_91/jre/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/java/jdk1.8.0_91/jre/lib/amd64/libjsig.so:/usr/java/jdk1.8.0_91/jre/lib/amd64/server/libjvm.so:/usr/java/jdk1.8.0_91/jre/lib/amd64/server:/usr/java/jdk1.8.0_91/jre/lib/amd64 使新加入的环境变量生效 source ~/.bash_profile 进入 OGG安装目录 cd /ogg 复制 hbase对应的配置文件。 cp AdapterExamples/big-data/hbase/* dirprm/ cd/ogg/dirprm
[root@sy-bd-060 dirprm]# vi hbase.props gg.handlerlist=hbase gg.handler.hbase.type=hbase gg.handler.hbase.hBaseColumnFamilyName=cf gg.handler.hbase.keyValueDelimiter=CDATA[=] gg.handler.hbase.keyValuePairDelimiter=CDATA[,] gg.handler.hbase.encoding=UTF-8 gg.handler.hbase.pkUpdateHandling=abend gg.handler.hbase.nullValueRepresentation=CDATA[NULL] gg.handler.hbase.authType=none gg.handler.hbase.includeTokens=false gg.handler.hbase.mode=tx goldengate.userexit.timestamp=utc goldengate.userexit.writers=javawriter javawriter.stats.display=TRUE javawriter.stats.full=TRUE gg.log=log4j gg.log.level=INFO gg.report.time=30sec #配置hbase 所用库的路径 gg.classpath=/usr/hdp/2.4.2.0-258/hbase/lib/*:/usr/hdp/2.4.2.0-258/hbase/conf/:/usr/hdp/2.4.2.0-258/hadoop/client/* javawriter.bootoptions=-Xmx512m -Xms32m-Djava.class.path=ggjava/ggjava.jar 进入ogg cd /ogg ./ggsci GGSCI(hbase)2>editparamsmgr Port 7809 #配置复制进程 GGSCI(hbase)5>addreplicatirhbase,specialrun SPECIALRUN END RUNTIME EXTFILE ./dirdat/hh TARGETDB LIBFILE libggjava.so SETproperty=dirprm/hbase.props REPORTCOUNT EVERY 1 MINUTES,RATE GROUPTRANSOPS 10000 MAP scott.*,TARGET BDTEST.*; 5、源端(192.168.45.176) cd /home/oracle/oggdb ./ggsci 启动fafainie 进程 GGSCI(oracle)1>startfafainih 查看进程的执行情况 GGSCI(oracle)2>viewreportfafainih
6、目标端(192.168.45.175) cd /ogg 启动复制进程 ./replicatparamfile./dirprm/irhbase.prmreportfile./dirrpt/irhbase.rpt-pINITIALDATALOAD 进入hbase 环境 Hbase shell
#查看表中的数据 发现表中的数据已经存在,说明oracle的 数据成功加载至 hbase. 源端(192.168.45.176)配置数据的动态抓取 cd/home/oracle/oggdb sqlplus / as sysdba SQL>@marker_setup 在以下提示中输入:ogg EnterOracleGoldenGateschemaname:ogg #创建OGG表空间,授予OGG用户相应的权限 SQL> CREATE TABLESPACE TBS_OGG DATAFILE '/home/oracle/app/oracle/oradata/oggdb/tbs_ogg_01.dbf'SIZE 2G AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED; Tablespace created. SQL> alter user ogg DEFAULT TABLESPACE TBS_OGG; User altered. SQL> grant connect,resource,unlimited tablespace to ogg; Grant succeeded.
SQL>@ddl_setup.sql #在以下提示中:输入ogg EnterOracleGoldenGateschemaname:ogg
SQL> @role_setup # 在以下提示中:输入ogg Enter GoldenGate schema name:ogg SQL>GRANTGGS_GGSUSER_ROLETOOGG;
配置OGG 日志抓取进程 cd /home/oracle/oggdb ./ggsci 源端创建OGG 抽取进程 GGSCI(oracle)1>addextractscotthb,tranlog,beginnow
# 指定抽取进程trail文件的位置 GGSCI(oracle)2>addrmttrail/ogg/dirdat/ha,extractscotthb 编辑 scotthb 进程参数 GGSCI(oracle)3>editparamsscotthb extractscotthb rmttrail/ogg/dirdat/ha discardfile/home/oracle/oggdb/dirrpt/trail.dsc,append,megabytes100 ddlincludemapped tablescott.*; 7、目标端(192.168.45.175)配置数据复制进程 cd/ogg ./ggsci 配置全局参数 GGSCI(hbase)1>editparams./GLOBALS ggschemaogg checkpointtableogg.chkpnt_fafa 配置解析进程 GGSCI(hbase)2>addreplicatrscott,exttrail/ogg/dirdat/ha 编辑解析进程参数 GGSCI(hbase)3>edit paramsrscott REPLICAT rscott -- Trail file for this example is located in"AdapterExamples/trail" directory -- Command to add REPLICAT -- add replicat rhbase,exttrail AdapterExamples/trail/tr TARGETDB LIBFILE libggjava.so SET property=dirprm/hbase.props GROUPTRANSOPS 10000 8、源端(192.168.45.176)启动抓取进程 cd /home/oracle/ogdb ./ggsci GGSCI(oracle)1>startscotthb 9、 目标端(192.168.45.173)启动复制进程 cd/home/oracle/oggdb ./ggsci GGSCI(kafka)1>startrscott
至此,整个配置过程完成,配置完成后,可以通过在源端(192.168.45.176)中的oracle 数据库中,进行DML操作,测试新变化的数据,是否能同步到hbase。 10、源端数据库做测试(192.168.45.176) sqlplus / as sysdba SQL> Alter user scott account unlock; SQL> connscott/tiger 向scott.dept表中新插入一条数据 SQL> insert into scott.deptvalues(50,'DEVELOP','SHANGHAI'); SQL> commit; 11、在目标端(192.168.45.175)上查看数据 Hbase shell 在hbase中,已经可以查询到新增加的数据。 12、在源端(192.168.45.176)修改oracle 数据. sqlplus / as sysdba SQL> update scott.dept set loc='HANGZHOU'where deptno=50; 13、在目标端(192.168.45.175) 查看数据 Hbase shell
发现hbase 数据对应的记录已经相应的修改。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |