OGG FOR BIGDATA 安装(修正)
参考:http://docs.oracle.com/goldengate/bd1221/gg-bd/GADBD/toc.htm
一、环境介绍
二、配置源端数据库
create user ggmgr identified by ggmgr defaulttablespace DATA_OL;grant connect,resource,unlimited tablespace to ggmgr;- grant execute on utl_file to ggmgr;
grant select any dictionary,select any table to ggmgr;grant alter any table to ggmgr;grant flashback any table to ggmgr;grant execute on DBMS_FLASHBACK to ggmgr;GRANT execute on DBMS_CAPTURE_ADM to ggmgr ;
1.2 开启附加日志
1.2.1 日志简介
- 数据库级别:包括最小(Minimal)、支持所有字段(all)、支持主键(primary key)、支持唯一键(unique)、支持外键(foreign key)。要使用OGG,至少要开启最小级别。是用户级别附加日志和表级别附加日志的基础。
- 用户级别:使用OGG DDL抽取功能时需要开启.
- 表级别 :必须开启表级别附加日志,除非启用了用户级别附加日志。
1.2.2 开启附件日志
SQL> SELECT supplemental_log_data_min, force_logging FROM v$database;SUPPLEMENTAL_LOG_DATA_MIN FORCE_LOGGING------------------------- -------------YES NO
alter database add supplemental log data;ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;ALTER DATABASE FORCE LOGGING;
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;
三、配置抽取端OGG
3.1 设置环境变量
export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1export LD_LIBRARY_PATH=$ORACLE_HOME/libexport ORACLE_SID=orclexport PATH=$PATH:$ORACLE_HOME/bin:$LD_LIBRARY_PATH
setenv(NLS_LANG = "AMERICAN_AMERICA.UTF8")SETENV(ORACLE_HOME = "/u01/app/oracle/product/11.2.0.4/dbhome_1")SETENV(ORACLE_SID = "orcl")
3.2 安装OGG
使用OUI安装OGG或下载安装包解压到/u01/ogg.
1)用OUI安装OGG
用ORACLE用户执行runInstaller即可
2)用OUI静默安装
在解压目录下找到response/oggcore.rsp,修改:
- #如果机器上已经安装了ORACLE,则只添加以下几行即可.如果没有安装ORACLE,请先安装ORACLE或者ORACEL LIENT
INSTALL_OPTION=11g
SOFTWARE_LOCATION=/opt/ogg
UNIX_GROUP_NAME=oinstall
然后执行
./runInstaller -silent -nowait -responseFile /opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp
- #如果机器上已经安装了ORACLE,则只添加以下几行即可.如果没有安装ORACLE,请先安装ORACLE或者ORACEL LIENT
INSTALL_OPTION=11gSOFTWARE_LOCATION=/opt/oggUNIX_GROUP_NAME=oinstall
./runInstaller -silent -nowait -responseFile /opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp
3.2 创建子目录
GGSCI (OGGTEST) 1> create subdirs
3.3 添加表级别附加日志
GGSCI (OGGTEST) 2>dblogin userid ggmgr,password ggmgrSuccessfully logged intodatabase.GGSCI (OGGTEST) 3> add trandata scott.deptLogging of supplemental redo dataenabled for table SCOTT.DEPT.
GGSCI (OGGTEST) 3> add trandata scott.bouns,cols(ename),nokey
3.4 配置mgr进程
GGSCI(OGGTEST) 1> edit param mgrPORT 7839DYNAMICPORTLIST 7840-7939--AUTOSTART ER *AUTORESTART EXTRACT *,RETRIES5,WAITMINUTES 3PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3LAGREPORTHOURS 1LAGINFOMINUTES 30LAGCRITICALMINUTES 45
3.5 配置抽取进程
GGSCI(OGGTEST) 12> add extract e_m157,tranlog,begin now #指定从log抽取,抽取时间是noeEXTRACTadded.GGSCI(OGGTEST) 14> add exttrail ./dirdat/em,extract e_m157,megabytes 50 #添加trail文件,Megabytes:指定队列大小,本处设置表示50M。- GGSCI(OGGTEST) 14> edit param e_m157
extracte_m157SETENV(ORACLE_SID="orcl")SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)userid ggmgr, passwordggmgrEXTTRAIL /opt/ogg/dirdat/emtable ogg_owner.togg;TABLE scott.dept;#可以用scott.*
ADD EXTRACT group name
{, TRANLOG | , INTEGRATED TRANLOG}
{, BEGIN {NOW | yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]} | SCN value}
[, THREADS n]
ADD EXTRACT finance, TRANLOG, BEGIN 2011-01-01 12:00:00.000000
3.6 配置传输进程
GGSCI(OGGTEST) 2> add extract dpend,exttrailsource ./dirdat/em #添加 传输进程EXTRACT added.GGSCI(OGGTEST) 3> add rmttrail /opt/ogg/dirdat/em, EXTRACT DPEND #添加远程trail文件,即目标机tail文件位置RMTTRAIL added.GGSCI(OGGTEST) 4> edit params dpend #编辑传输进程配置文件EXTRACT dpendSETENV(NLS_LANG = "AMERICAN_AMERICA.UTF8")USERID ggmgr, PASSWORD ggmgrPASSTHRURMTHOST 10.81.2.108, MGRPORT 7839, compressRMTTRAIL/opt/ogg/dirdat/emTABLE Scott.dept
3.7 创建定义文件
3.7.1 创建定义文件参数
[oracle@OGGTEST ogg]$ vi /opt/ogg/dirdef/scott.def.prmdefsfile ./dirdef/scott.def , purgeuserid ggmgr,password ggmgrtable scott.*;
3.7.2 创建定义文件
./defgen PARAMFILE /opt/ogg/dirdef/scott.def.prm
四、配置目标端OGG
4.1 安装ogg for bigdata
4.1.1 安装ogg for bigdata
ggsci>create subdirs
ggsci>create subdirs
4.1.2 设置环境变量
export LD_LIBRARY_PATH=/usr/java/jdk1.8.0_60/jre/lib/amd64/server/
4.2 配置mgr进程
4.2.1 编辑mgr进程参数
GGSCI(OGGTEST) 1> edit param mgrport7839dynamicportlist 7809-7909lagreportminutes 10laginfoseconds 1purgeoldextracts ./dirdat/*, usecheckpoints, minkeephours 192
4.2.2 启动mgr
ggsci>start mgr
4.3 配置HDFS handler
cp /opt/ogg/AdapterExamples/big-data/hdfs/* /opt/ogg/dirprm
4.3.1 配置hdfs handler
[root@BFHT5 ogg]# vi dirprm/hdfs.propsgg.handlerlist=hdfs --handler名称gg.handler.hdfs.type=hdfs --handler的类型#gg.handler.hdfs.includeTokens=truegg.handler.hdfs.maxFileSize=1ggg.handler.hdfs.rootFilePath=/user/oracle/gg --HDFS上的存储目录gg.handler.hdfs.fileRollInterval=0gg.handler.hdfs.inactivityRollInterval=0gg.handler.hdfs.fileSuffix=.txtgg.handler.hdfs.partitionByTable=truegg.handler.hdfs.rollOnMetadataChange=truegg.handler.hdfs.authType=nonegg.handler.hdfs.format=delimitedtext --hdfs文件类型gg.handler.hdfs.format.includeColumnNames=true --包括列名gg.handler.hdfs.format.fieldDelimiter=CDATA[|] --字段分隔符gg.handler.hdfs.mode=tx --工作模式tx 事务 op操作goldengate.userexit.timestamp=utcgoldengate.userexit.writers=javawriterjavawriter.stats.display=TRUEjavawriter.stats.full=TRUEgg.log=log4jgg.log.level=DEBUG --日志级别,可设5个级别,默认为INFOgg.report.time=30secgg.classpath=/opt/cloudera/parcels/CDH/lib/hadoop/*:/opt/cloudera/parcels/CDH/lib/hadoop/lib/*:/opt/cloudera/parcels/CDH/lib/hadoop-hdfs/*:/etc/hadoop/conf/:/opt/cloudera/parcels/CDH/lib/hadoop/lib/native/*javawriter.bootoptions=-Xmx512m -Xms32m -Djava.class.path=ggjava/ggjava.jar
4.3.2 配置复制进程
[root@BFHT5 ogg]# vi dirprm/rhdfs.prmREPLICAT rhdfs --复制进程名setenv HADOOP_COMMON_LIB_NATIVE_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/lib/nativeTARGETDB LIBFILE libggjava.so SET property=dirprm/hdfs.props --使用的hdfs handler配置文件SOURCEDEFS ./dirdef/scott.def --使用定义文件HANDLECOLLISIONSreperror default ,discarddiscardfile ./dirrpt/r_hive00000.dsc, append, megabytes 50 --错误数据写这里REPORTCOUNT EVERY 1 MINUTES, RATEGROUPTRANSOPS 10 --组提交MAP scott.*, TARGET scott.*;
4.3.3 添加复制进程
ggsci>ADD REPLICAT rhdfs, EXTTRAIL /opt/ogg/dirdat/em
ADD REPLICAT <group_name>[, INTEGRATED | COORDINATED [MAXTHREADS <number>]]{, SPECIALRUN |, EXTFILE <filename> |, EXTTRAIL <filename>}[, BEGIN {NOW | yyyy-mm-dd:hh:mm[:ss[.cccccc]]} |, EXTSEQNO <seqno>, EXTRBA <rba>][, CHECKPOINTTABLE <owner.table> | NODBCHECKPOINT][, PARAMS <parameter file>][, REPORT <report file>][, DESC "<description>"][, CPU number][, PRI number][, HOMETERM device_name][, PROCESSNAME process_name]
4.3.4 启动复制进程
ggsci>start rhdfs
4.3.5 检查抽取情况
4.4 配置 flume handler
4.4.1 配置flume handler
[root@BFHT5 dirprm]# vi custom-flume-rpc.propertiesclient.type = defaulthosts = bfht5hosts.bfht5 = 10.80.2.108:1111batch-size = 100connect-timeout = 20000request-timeout = 20000
[root@BFHT5 dirprm]# vi flume.propsgg.handlerlist = flumehandler --handler 名称gg.handler.flumehandler.type=flume --handler类型gg.handler.flumehandler.RpcClientPropertiesFile=custom-flume-rpc.properties --指定flume代理的配置文件gg.handler.flumehandler.mode=tx#gg.handler.flumehandler.maxGroupSize=100, 1Mb#gg.handler.flumehandler.minGroupSize=50, 500 Kbgg.handler.flumehandler.EventMapsTo=txgg.handler.flumehandler.PropagateSchema=truegg.handler.flumehandler.includeTokens=falsegg.handler.flumehandler.format.fieldDelimiter=,gg.handler.flumehandler.format.lineDelimiter=;gg.handler.flumehandler.format.includeColumnNames=truegoldengate.userexit.timestamp=utcgoldengate.userexit.writers=javawriterjavawriter.stats.display=TRUEjavawriter.stats.full=TRUEgg.log=log4jgg.log.level=INFOgg.report.time=30secgg.classpath=dirprm/:/opt/cloudera/parcels/CDH/lib/flume-ng/lib/* --要包含flume的库javawriter.bootoptions=-Xmx512m -Xms32m -Djava.class.path=ggjava/ggjava.jar
[root@BFHT5 dirprm]# vi rflume.prmREPLICAT rflumeTARGETDB LIBFILE libggjava.so SET property=dirprm/flume.propsSOURCEDEFS ./dirdef/scott.defHANDLECOLLISIONSALLOWNOOPUPDATESdiscardfile ./dirrpt/r_hive00000.dsc, append, megabytes 50REPORTCOUNT EVERY 1 MINUTES, RATEGROUPTRANSOPS 10MAPEXCLUDE uatxdgl.USER_INFO;MAPEXCLUDE uatxdgl.BACKDETAILS_INFO;MAPEXCLUDE UATXDGL.ASSISTINVESTIGATE;MAP scott.dept, TARGET scott.dept;
4.4.2 添加复制进程
ggsci>ADD REPLICAT rflume, EXTTRAIL /opt/ogg/dirdat/em
4.4.3 启动复制
GGSCI>start rflume
五、初始化数据
5.1 停止复制进程
5.2 源库查询当前SCN
SQL> select dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER------------------------3173410
5.3 sqoop从SCN 3173410开始抽取数据到HDFS
5.4 设置复制端使用的文件和SCN,启动复制
alter replicat fscott,extseqno 2,extrba 0 #使用scn3173410 时的trail文件start fscott NOFILTERDUPTRANSACTIONS, aftercsn 3173410 #启动复制进程
OGG FOR BIGDATA 安装(修正)的更多相关文章
- OGG For Bigdata To Kafka同步问题处理
一.问题报错 -- :: ERROR OGG- Java or JNI exception: oracle.goldengate.util.GGException: Error detected ha ...
- OGG FOR BigData(Hive) GoldenGate 性能测试
版本信息: Oracle GoldenGate Command Interpreter Version 12.2.0.1.160419 OGGCORE_12.2.0.1.0OGGBP_PLATFORM ...
- 安装ogg软件报错:[INS-75012]Sofware Location specified is already an existing Oracle
1.安装ogg软件时报错: [INS-75012]Sofware Location specified is already an existing Oracle 2.根据报错,是说我们选择ogg软件 ...
- OGG 18.1 for mysql远程捕获测试
Ogg18.1 remote capture要求mysql为5.7版本,只能从linux远程捕获mysql on windows or linux,且不支持DDL捕获.支持远程mysql为commun ...
- OGG 从Oracle备库同步数据至kafka
OGG 从Oracle备库同步数据至kafka Table of Contents 1. 目的 2. 环境及规划 3. 安装配置JDK 3.1. 安装jdk 3.2. 配置环境变量 4. 安装Data ...
- 在RAC上部署OGG并配置OGG高可用
目录 简介 环境信息 安装OGG 配置数据库 开启数据库级别日志补充 在dbdc1为OGG单独创建TNS 创建OGG管理用户及其表空间 配置OGG 设置OGG全局参数 Source端,OGG设置, 配 ...
- 10.Oracle Golden Date(ogg)的搭建和管理
一. GoldenGate 概述 GoldenGate现在是业内成熟的数据容灾与复制产品:GoldenGate是一种基于日志的结构化数据复制方式,它通过解析源数据库在线日志或归档日志获得数据的增删改变 ...
- oracle goldengate安装
1.ftp工具上传ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip分别到source和target服务器 [oracle@localhost mnt]$ ll ...
- 【OGG】RAC环境下配置OGG单向同步 (四)
[OGG]RAC环境下配置OGG单向同步 (四) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的 ...
随机推荐
- django restframework 简单总结
官方文档:http://www.django-rest-framework.org/ model.py class Snippet(models.Model): created = models.Da ...
- Azure云 windows平台 搭建ftp服务器注意事项
1.iis设置防火墙支持端口(1-65535自定义端口,一般3-5个都行) 2.客户端连接使用被动链接模式 3.endpoint终结点添加20,21,以及你自定义的防火墙支持端口. 4.本地防火墙添加 ...
- java final使用
一:final 1:有时候 我们需要一些类,不要被继承.即阻止定义子类.不允许扩展的类叫做final类,如果一个类在定义的时候,用final定义的时候,表示这个类是final类.无法定义子类. 语法 ...
- ZOJ 3992 One-Dimensional Maze(思维题)
L - One-Dimensional Maze Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & % ...
- [2012山东ACM省赛] Pick apples (贪心,全然背包,枚举)
Pick apples Time Limit: 1000MS Memory limit: 165536K 题目描写叙述 Once ago, there is a mystery yard which ...
- class和object_getClass方法区别
一.概述 如上图: 1.内存创建一个instance实例对象(Person *per),同时会创建一个与之对应的类对象(Class perClass)和元类对象(Class perMeta); 注:实 ...
- vue中使用codemirror
https://blog.csdn.net/oumaharuki/article/details/79268498 别人的记载,写的很不错,还有下载的方法 以下是自己使用过的,做出来的例子: 做出来 ...
- laravel5.5源码笔记(八、Eloquent ORM)
上一篇写到Eloquent ORM的基类Builder类,这次就来看一下这些方便的ORM方法是如何转换成sql语句运行的. 首先还是进入\vendor\laravel\framework\src\Il ...
- PHP 抓取函数curl 实践
最近在学习curl的抓取实践, 在里面也学到了一些东西. 有一些网站需要cookie才可以抓取成功.这个时候我们就可以通过fiddle4 去抓包实现.然后通过构建头部信息 ,绕过网站端的验证. 以下是 ...
- 微信公众号开发被动回复用户消息,回复内容Content使用了"\n"换行符还是没有换行
使用语言和框架:本人后端开发使用的Python的DRF(Django REST framework)框架 需求:在微信公众号开发时,需要实现自动回复,即被关注回复.收到消息回复.关键词回复 发现问题: ...