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/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_SID=orcl
export 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=11g
SOFTWARE_LOCATION=/opt/ogg
UNIX_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 ggmgr
Successfully logged intodatabase.
GGSCI (OGGTEST) 3> add trandata scott.dept
Logging 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 mgr
PORT 7839
DYNAMICPORTLIST 7840-7939
--AUTOSTART ER *
AUTORESTART EXTRACT *,RETRIES5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
3.5 配置抽取进程
GGSCI(OGGTEST) 12> add extract e_m157,tranlog,begin now #指定从log抽取,抽取时间是noe
EXTRACTadded.
GGSCI(OGGTEST) 14> add exttrail ./dirdat/em,extract e_m157,megabytes 50 #添加trail文件,
Megabytes:指定队列大小,本处设置表示50M。
- GGSCI(OGGTEST) 14> edit param e_m157
extract
e_m157SETENV(ORACLE_SID="orcl")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
userid ggmgr, password
ggmgrEXTTRAIL /opt/ogg/dirdat/em
table 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 dpend
SETENV(NLS_LANG = "AMERICAN_AMERICA.UTF8")
USERID ggmgr, PASSWORD ggmgr
PASSTHRU
RMTHOST 10.81.2.108, MGRPORT 7839, compress
RMTTRAIL
/opt/ogg/dirdat/emTABLE Scott.dept
3.7 创建定义文件
3.7.1 创建定义文件参数
[oracle@OGGTEST ogg]$ vi /opt/ogg/dirdef/scott.def.prm
defsfile ./dirdef/scott.def , purge
userid ggmgr,password ggmgr
table 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 mgr
port
7839dynamicportlist 7809-7909
lagreportminutes 10
laginfoseconds 1
purgeoldextracts ./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.props
gg.handlerlist=hdfs --handler名称
gg.handler.hdfs.type=hdfs --handler的类型
#gg.handler.hdfs.includeTokens=true
gg.handler.hdfs.maxFileSize=1g
gg.handler.hdfs.rootFilePath=/user/oracle/gg --HDFS上的存储目录
gg.handler.hdfs.fileRollInterval=0
gg.handler.hdfs.inactivityRollInterval=0
gg.handler.hdfs.fileSuffix=.txt
gg.handler.hdfs.partitionByTable=true
gg.handler.hdfs.rollOnMetadataChange=true
gg.handler.hdfs.authType=none
gg.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=utc
goldengate.userexit.writers=javawriter
javawriter.stats.display=TRUE
javawriter.stats.full=TRUE
gg.log=log4j
gg.log.level=DEBUG --日志级别,可设5个级别,默认为INFO
gg.report.time=30sec
gg.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.prm
REPLICAT rhdfs --复制进程名
setenv HADOOP_COMMON_LIB_NATIVE_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/lib/native
TARGETDB LIBFILE libggjava.so SET property=dirprm/hdfs.props --使用的hdfs handler配置文件
SOURCEDEFS ./dirdef/scott.def --使用定义文件
HANDLECOLLISIONS
reperror default ,discard
discardfile ./dirrpt/r_hive00000.dsc, append, megabytes 50 --错误数据写这里
REPORTCOUNT EVERY 1 MINUTES, RATE
GROUPTRANSOPS 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.properties
client.type = default
hosts = bfht5
hosts.bfht5 = 10.80.2.108:1111
batch-size = 100
connect-timeout = 20000
request-timeout = 20000
[root@BFHT5 dirprm]# vi flume.props
gg.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 Kb
gg.handler.flumehandler.EventMapsTo=tx
gg.handler.flumehandler.PropagateSchema=true
gg.handler.flumehandler.includeTokens=false
gg.handler.flumehandler.format.fieldDelimiter=,
gg.handler.flumehandler.format.lineDelimiter=;
gg.handler.flumehandler.format.includeColumnNames=true
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
gg.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.prm
REPLICAT rflume
TARGETDB LIBFILE libggjava.so SET property=dirprm/flume.props
SOURCEDEFS ./dirdef/scott.def
HANDLECOLLISIONS
ALLOWNOOPUPDATES
discardfile ./dirrpt/r_hive00000.dsc, append, megabytes 50
REPORTCOUNT EVERY 1 MINUTES, RATE
GROUPTRANSOPS 10
MAPEXCLUDE 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 #使用scn
3173410 时的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 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的 ...
随机推荐
- 聊聊iOS Keychain
某天,小熊碰见这样一个错误 Couldn't update the Keychain Item问题处理 ,网上搜索了下网上很多解决方案,依然百撕不得骑姐.后来参考下面两篇文章.才发现是用法不正确,网上 ...
- block本质探寻一之内存结构
一.代码——命令行模式 //main.m #import <Foundation/Foundation.h> struct __block_impl { void *isa; int Fl ...
- Delphi的idhttp报508 Loop Detected错误的原因
一般是访问https时才出现“508 Loop Detected”,idhttp+IdSSLIOHandlerSocketOpenSSL,这个在上篇文章中讲过了. 由于该问题网上资料极少,连外文资料也 ...
- windbg调试虚拟机win7系统
调试机:win10 1809 虚拟机: win7 windbg属性设置,在目标后面加上紫色字体参数: "D:\Program Files\Debugging Tools for Windo ...
- PPAS可以安装分区表
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页 [作者 高健@博客园 luckyjackg ...
- c++ 字符串转换
字符分类函数 转换字符函数 字符串转换成数值 需清加#include<ctype.h> 函数名 功能 islower 测试是否小写字母, 是返回非零,否则返回零. isupper 测试是否 ...
- 07- django组件:中间件
1.中间件的概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影 ...
- 9 README,全套代码
BBS+ BLOG系统(仿博客园) 一.概要 欢迎您使用该BBS+BLOG系统,希望在您使用的过程中体验到便捷和愉快的使用感受,并对我们的软件提出您发现的问题和建议,谢谢. 联系邮箱:liangshu ...
- Kubernetes学习之路(八)之Kubeadm部署集群
一.环境说明 节点名称 ip地址 部署说明 Pod 网段 Service网段 系统说明 k8s-master 192.168.56.11 docker.kubeadm.kubectl.kubelet ...
- python之打包、发布模块
一.python中针对于写好的模块,并且比人也可以使用改模块,这样就可以以同意的打出来,让别人安装或者赋值过后可以更好的使用以及集成. 二.最近在学习python所以这里主要是记录一下python的打 ...