在OGG主目录下执行:
./defgen paramfile dirprm/tcloud.prm
完成之后会生成这样的文件/u01/gg/dirdef/tcloud.t_ogg,将这个文件拷贝到目标端的OGG主目录下的dirdef目录即可。
目标端的配置
创建目标表(目录)
这里主要是当目标端为HDFS目录或者Hive表或者MySQL数据库时需要手动先在目标端创建好目录或者表,创建方法都类似,这里我们模拟实时传入到HDFS目录,故手动创建一个接收目录即可
hadoop –fs mkdir /gg/replication/hive/
配置管理器mgr
目标端的OGG管理器(mgr)和源端的配置类似,在OGG命令行下执行:
GGSCI (
10.0.0.2)
2> edit params mgr
PORT
7809
DYNAMICPORTLIST
7810-
7909
AUTORESTART EXTRACT *,RETRIES
5,WAITMINUTES
3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays
3
配置checkpoint
checkpoint即复制可追溯的一个偏移量记录,在全局配置里添加checkpoint表即可
GGSCI (
10.0.0.2)
5> edit params ./GLOBALS
CHECKPOINTTABLE tcloud.checkpoint
保存即可
配置replicate进程
在OGG的命令行下执行:
GGSCI (
10.0.0.2)
8> edit params r2hdfs
REPLICAT r2hdfs
sourcedefs /data/gg/dirdef/tcloud.t_ogg
TARGETDB LIBFILE libggjava.so SET property=dirprm/hdfs.props
REPORTCOUNT EVERY
1 MINUTES, RATE
GROUPTRANSOPS
10000
MAP tcloud.t_ogg, TARGET tcloud.t_ogg;
说明:REPLICATE r2hdfs定义rep进程名称;sourcedefs即在3.6中在源服务器上做的表映射文件;TARGETDB LIBFILE即定义HDFS一些适配性的库文件以及配置文件,配置文件位于OGG主目录下的dirprm/hdfs.props;REPORTCOUNT即复制任务的报告生成频率;GROUPTRANSOPS为以事务传输时,事务合并的单位,减少IO操作;MAP即源端与目标端的映射关系
其中property=dirprm/hdfs.props的配置中,最主要的几项配置及注释如下:
gg.handlerlist=hdfs
//OGG
for Big Data中handle类型
gg.handler.hdfs.type=hdfs
//OGG
for Big Data中HDFS目标
gg.handler.hdfs.rootFilePath=
/gg/replication/hive/ //OGG
for Big Data中HDFS存储主目录
gg.handler.hdfs.mode=op
//OGG
for Big Data中传输模式,即op为一次SQL传输一次,tx为一次事务传输一次
gg.handler.hdfs.includeTokens=false
gg.handler.hdfs.maxFileSize=1g
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
goldengate.userexit.writers=javawriter
javawriter.stats.display=true
javawriter.stat.full=true
gg.handler.hdfs.format=delimitedtext
//OGG
for Big Data中文件传输格式
#()gg.classpath=
/usr/hdp/2.2.0.0-2041/hadoop/share/hadoop/common/*:
/usr/hdp/2.2.0.0-2041/hadoop/share/hadoop/common/lib/*:
/usr/hdp/2.2.0.0-2041/hadoop/share/hadoop/hdfs/*:
/usr/hdp/2.2.0.0-2041/hadoop/etc/hadoop/:
/data/gg/:/data/gg/lib/*:
/usr/hdp/2.2.0.0-2041/hadoop/client/*
gg.classpath=/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hadoop/*:/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hadoop/lib/*:/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hadoop-hdfs/*:/opt/cloudera/parcels/CDH-5.7.0-1/cdh5.7.0.p0.45/lib/hadoop/etc/hadoop/:/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.po.45/lib/hadoop/lib/native:/usr/local/ogg/:/usr/local/ogg/lib/*:/etc/hadoop/conf
javawriter.bootoptions=-Xmx512m -Xms32m -Djava.class.path=ggjava/ggjava.jar
###Big Data中使用到的HDFS库的定义
具体的OGG for Big Data支持参数以及定义可参考
最后在OGG的命令行下执行:
GGSCI (
10.0.0.2)
9> add replicat r2hdfs exttrail /data/gg/dirdat/tc,checkpointtable tcloud.checkpointtab
REPLICAT added.
将文件与复制进程绑定即可
测试
启动进程
在源端和目标端的OGG命令行下使用start [进程名]的形式启动所有进程。
启动顺序按照源mgr——目标mgr——源extract——源pump——目标replicate来完成。
检查进程状态
以上启动完成之后,可在源端与目标端的OGG命令行下使用info [进程名]来查看所有进程状态,如下:
源端:
GGSCI (VM_0_25_centos)
7>
info mgr
Manager is running (IP port VM_0_25_centos.
7809).
GGSCI (VM_0_25_centos)
9>
info ext2hd
EXTRACT EXT2HD Last Started
2016-
11-
09 16:
05 Status RUNNING
Checkpoint Lag
00:
00:
00 (updated
00:
00:
09 ago)
Log Read Checkpoint Oracle Redo Logs
2016-
11-
09 16:
45:
51 Seqno
8, RBA
132864000
SCN
0.
1452333 (
1452333)
GGSCI (VM_0_25_centos)
10>
info push2hd
EXTRACT PUSH2HD Last Started
2016-
11-
09 16:
05 Status RUNNING
Checkpoint Lag
00:
00:
00 (updated
00:
00:
01 ago)
Log Read Checkpoint File /u01/gg/dirdat/tc000000
First Record RBA
1043