• ORACLE GOLDEN GATE oracle同步数据至kafka


    一.服务器信息

    ip   软件版本 ogg版本 软件包 操作系统版本 OGG安装路径
    10.1.50.52 oracle11.2.0.4 12.2.0.1.1 V100692-01.zip centos6.9 /data/ogg
    10.0.71.102 目标 kafka0.10 12.2.0.1.160823 123010_ggs_Adapters_Linux_x64.zip centos7.3 /data/ogg

    二.源端安装OGG

    1.解压V100692-01.zip

    unzip V100692-01.zip

    这个时候会看到fbo_ggs_Linux_x64_shiphome文件夹

    2.我们采用静默安装的方式进行安装(注意要使用oracle用户来进行安装,oggcore.rsp配置需要根据实际需要进行修改,也可使用图形界面进行安装)

    /usr/local/software/fbo_ggs_Linux_x64_shiphome/Disk1/runInstaller -silent -responseFile /usr/local/software/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp

    三.源端OGG配置

    1.开启主库归档日志、补充日志及force logging

    alter database add supplemental log data;

    alter database force logging;

    alter system set enable_goldengate_replication=true scope=both;

    2.创建ogg的管理用户

    create user ogg identified by password account unlock;

    grant connect,resource to ogg;

    grant select any dictionary to ogg;

    grant select any table to ogg;

    grant execute on utl_file to ogg;

    grant restricted session to ogg;

    grant create table,create sequence to ogg;

    alter table DCSDBA.YH_ITF_INVENTORY_TRANSACTION add supplemental log data (all) columns;--如果kafka需要接收到完整的修改信息就需要开启补全日志

    3.登录ogg并创建目录

    /data/ogg/ggsci

    create subdirs

    4.配置源端manager进程

    edit params mgr

    port 1357
    autostart er *
    autorestart er *

    5.启动manager并确认状态

    start mgr

    info all 查看MANAGER进程为running状态

    6.配置加密

    ENCRYPT PASSWORD password ENCRYPTKEY DEFAULT

    7.配置数据抽取进程

    ①加一个extract,名字随便取

    add extract hnwmsprd,tranlog,begin now

    ②为这个ext指定他把远程文件放到远程机的哪个目录

    ADD RMTTRAIL /data/ogg/dirdat/tt, EXTRACT hnwmsprd

    ③编辑配置文件

    edit params hnwmsprd

    extract hnwmsprd

    setenv (NLS_LANG="AMERICAN_AMERICA.UTF8")

    setenv (ORACLE_SID="hnwmsprd") 

    userid ogg,password AACAAAAAAAAAAAKALILFJIXIECMGKFAHRBJHGDGBNJLBOAUC,ENCRYPTKEY DEFAULT

    rmthost 10.0.71.102, mgrport 1357

    rmttrail /data/ogg/dirdat/tt

    discardfile /data/ogg/dirrpt/trail.dsc,append,megabytes 100

    gettruncates

    GETUPDATEBEFORES
    NOCOMPRESSDELETES
    NOCOMPRESSUPDATES

    TRANLOGOPTIONS MINEFROMACTIVEDG

    table DCSDBA.YH_ITF_INVENTORY_TRANSACTION;

    ④启动进程

    start hnwmsprd

    四.OGG目标端搭建

    目标端搭建只需解压软件即可

     

    unzip 123010_ggs_Adapters_Linux_x64.zip

    解压出来ggs_Adapters_Linux_x64.tar文件

    将文件移动到/data/ogg目录下解压

    mv ggs_Adapters_Linux_x64.tar /data/ogg
    tar -xvf ggs_Adapters_Linux_x64.tar

    五.OGG目标端配置

    1.登录ogg并创建目录

    /data/ogg/ggsci

    create subdirs

    2.配置源端manager进程

    edit params mgr

    port 1357
    autostart er *
    autorestart er *

    3.启动manager并确认状态

    start mgr

    info all 查看MANAGER进程为running状态

    4.添加复制进程

    add replicat rkafka,exttrail dirdat/tt,begin now

    edit params rkafka

    REPLICAT rkafka

    TARGETDB LIBFILE libggjava.so SET property=dirprm/kafka.props

    REPORTCOUNT EVERY 1 MINUTES, RATE

    GROUPTRANSOPS 10000

    MAP DCSDBA.YH_ITF_INVENTORY_TRANSACTION, TARGET DCSDBA.YH_ITF_INVENTORY_TRANSACTION;

    5.修改kafka.props(注意:kafka.props要放在/data/ogg/dirprm路径下)

    gg.handlerlist = kafkahandler                                                                                                                           

    gg.handler.kafkahandler.type = kafka                                                                                                             

    gg.handler.kafkahandler.KafkaProducerConfigFile=custom_kafka_producer.properties                     

    gg.handler.kafkahandler.TopicName =hnwmsprd                                                                                          

    gg.handler.kafkahandler.format =json                                                                                                           

    gg.handler.kafkahandler.SchemaTopicName=ogg                                                                              

    gg.handler.kafkahandler.BlockingSend =true                                                                                                

    gg.handler.kafkahandler.includeTokens=false                                                                                               

    gg.handler.kafkahandler.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                                                                                                                                          

    gg.classpath=dirprm/:/usr/local/kafka/libs/*:                                                            

    javawriter.bootoptions=-Xmx512m -Xms32m -Djava.class.path=ggjava/ggjava.jar 

    以上配置文件根据实际配置进行修改

    6.编辑custom_kafka_producer.properties文件(注意:custom_kafka_producer.properties要放在/data/ogg/dirprm路径下)

    #bootstrap.servers=host:port
    bootstrap.servers=10.0.71.102:9092
    acks=1
    #compression.type=gzip
    reconnect.backoff.ms=1000

    value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
    key.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
    # 100KB per partition
    batch.size=102400
    linger.ms=10000

    7.启动复制进程

    start rkafka

    六.验证

    目标端执行

    ./kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic hnwmsprd

    源端更新DCSDBA.YH_ITF_INVENTORY_TRANSACTION表。

     如果是在adg作为源端需要在源抽取进程上添加参数

    TRANLOGOPTIONS MINEFROMACTIVEDG  

    并在主库开启ddl,可以参考下面这位大神的配置

    http://czmmiao.iteye.com/blog/1609823

  • 相关阅读:
    EMC研究院电面记
    被百度放了鸽子
    最长严格递增子序列算法
    括号配对问题
    RTP 协议
    C++ 纯虚函数, 记上一笔!
    一年又一年
    direct3d Colorkey 应用.
    CEGUI 中文输入与显示
    被遗忘的C,记录一笔
  • 原文地址:https://www.cnblogs.com/soysauce/p/7411314.html
Copyright © 2020-2023  润新知