美文网首页
ogg12.3+mysql写入容器kafka(源端配置)

ogg12.3+mysql写入容器kafka(源端配置)

作者: ksice | 来源:发表于2019-08-06 13:05 被阅读0次

    数据ogg版本

    源端  MySQL5.X   ogg版本 123015_ggs_Linux_x64_MySQL_64bit

    目标端版本kafka_2.11-1.1.0   ogg版本 OracleGoldenGate for Big Data Version 12.3.1.1.1


    检查/etc/my.cnf文件是否存在,不存在则执行如下命令(Mysql5.7+):

    # cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

    1、开启binlog

    在/etc/my.cnf的[mysqld]下添加如下参数:

    # 行级日志模式

    binlog_format=row

    # 日志保存目录

    log-bin=mysql-bin

    # 日志保存30天

    expire_logs_days=30

    server-id=2

    重启:

    Centos6:servicemysqld restart

    Centos7: systemctlrestart mysqld

    MySQL5.7:systemctlrestart mysql

    注意:源端是安装了MySql的机器,MySql环境变量之前都配置好了

    创建ogg用户:

    # useradd -G mysql ogg

    2、解压

    先建立ogg目录:

    mkdir -p /opt/ogg

    unzip122022_ggs_Linux_x64_MySQL_64bit.zip

    解压后得到一个tar包,再解压这个tar:

    tar xfggs_Linux_x64_MySQL_64bit.tar -C /opt/ogg

    chown -R ogg:mysql/opt/ogg

    3、配置环境变量

    配置ogg环境变量文件/home/ogg/.bash_profile里配置:

    vim /home/ogg/.bash_profile

    export  GGS_HOME=/opt/ogg

    export  PATH=$GGS_HOME:$PATH

    使之生效:

    source/home/ogg/.bash_profile

    测试一下ogg命令:

    cd /opt/ogg

    ./ggsci

    如果命令成功即可进行下一步,不成功请检查前面的步骤。

    4、ogg初始化

    在ogg目录下create subdirs,创建目录文件

    create subdirs

    5、mysql创建测试表

    创建一个用户,在该用户下新建测试表,用户名、密码、表名均为 test_ogg:

    use test;

    create tabletest_ogg(

      a varchar(100) primary key,

      b varchar(100),

      c integer

    )type = innodb;

    6、建立软连接

    如果/tmp/mysql.sock不存在或者没有进行软连接可以输入以下命令:

    ln -s /var/lib/mysql/mysql.sock  /tmp/mysql.sock

    OGG登录到mysql数据库:

    cd /opt/ogg

    ./ggsci

    GGSCI(ambari.master.com) 1> dblogin sourcedb test@127.0.0.1:3306,userid root,password  xxxx

    7、配置管理器mgr

    GGSCI(ambari.master.com) 3> edit param mgr

    PORT 7809

    DYNAMICPORTLIST 7810-7909

    AUTOSTART ER *

    AUTORESTART  EXTRACT *,RETRIES 5,WAITMINUTES 3

    PURGEOLD EXTRACTS./dirdat/*,usecheckpoints, minkeepdays 3

    说明:PORT即mgr的默认监听端口;DYNAMICPORTLIST动态端口列表,当指定的mgr端口不可用时,会在这个端口列表中选择一个,最大指定范围为256个;AUTORESTART重启参数设置表示重启所有EXTRACT进程,最多5次,每次间隔3分钟;PURGEOLDEXTRACTS即TRAIL文件的定期清理

    8、配置extract进程

    因安全审计需要,在REPLICAT 中设置USERID and PASSWORD 的时候避免采用明文造成安全隐患,可以采用加密后的密码。

    GGSCI(3c809f267d19 DBLOGIN as root) 10> encrypt password 1234,ENCRYPTKEY default

    Using Blowfishencryption with DEFAULT key.

    Encryptedpassword: AACAAAAAAAAAAAEAFCBERGFHJCMEBDEE

    Algorithmused:  BLOWFISH

    我这里没有指定具体的加密算法,默认就是AES128算法

    GGSCI(3c809f267d19) 2> dblogin sourcedb test@127.0.0.1:3306,userid root,password AACAAAAAAAAAAAEAFCBERGFHJCMEBDEE,ENCRYPTKEY default

    编辑extkafka进程文件:

    GGSCI(ambari.master.com) 6> edit param extkafka

    extract extkafka

    setenv(MYSQL_HOME="/var/lib/mysql")

    tranlogoptionsaltlogdest /var/lib/mysql/mysql-bin.index

    sourcedbtest@127.0.0.1:3306,userid root,passwordAACAAAAAAAAAAAEAFCBERGFHJCMEBDEE,ENCRYPTKEY default

    exttrail /opt/ogg/[extkafka]/to

    dynamicresolution

    gettruncates

    GETUPDATEBEFORES

    NOCOMPRESSDELETES

    NOCOMPRESSUPDATES

    table test.*;

    说明:第一行指定extract进程名称;dynamicresolution动态解析;SETENV设置环境变量,这里分别设置了mysql数据库以及字符集;userid root,password Hismart@2019即OGG连接mysql数据库的帐号密码,这里使用2.5中特意创建的复制帐号;exttrail定义trail文件的保存位置以及文件名,注意这里文件名只能是2个字母,其余部分OGG会补齐;table即复制表的表名,支持*通配,必须以;结尾。

    添加extract进程:

    GGSCI(ambari.master.com) 16> add extract extkafka,tranlog,begin now

    EXTRACT added.

    添加trail文件的定义与extract进程绑定:

    GGSCI(ambari.master.com) 17> add exttrail /opt/ogg/[extkafka]/to,extract extkafka

    EXTTRAIL added.

    9、配置pump进程

    pump进程本质上来说也是一个extract,只不过他的作用仅仅是把trail文件传递到目标端,配置过程和extract进程类似,只是逻辑上称之为pump进程:

    GGSCI(ambari.master.com) 18> edit param pukafka

    extract pukafka

    passthru

    dynamicresolution

    rmthost192.168.124.173 mgrport 7809

    rmttrail /opt/ogg/[extkafka]/to

    table test.*;

    说明:第一行指定extract进程名称;passthru即禁止OGG与Oracle交互,我们这里使用pump逻辑传输,故禁止即可;dynamicresolution动态解析;rmthost和mgrhost即目标端(kafka)OGG的mgr服务的地址以及监听端口;rmttrail即目标端trail文件存储位置以及名称。

    分别将本地trail文件和目标端的trail文件绑定到extract进程:

    GGSCI(ambari.master.com) 1> add extract pukafka,exttrailsource /opt/ogg/[extkafka]/to

    EXTRACT added.

    GGSCI(ambari.master.com) 2> add rmttrail  /opt/ogg/[extkafka]/to,extract pukafka

    RMTTRAIL added.

    10、配置define文件

    Oracle与MySQL,Hadoop集群(HDFS,Hive,kafka等)等之间数据传输可以定义为异构数据类型的传输,故需要定义表之间的关系映射,在OGG命令行执行:

    GGSCI(ambari.master.com) 3> edit param [extkafka]

    defsfile /opt/ogg/dirdef/[extkafka]

    sourcedbtest@127.0.0.1:3306,userid root,passwordAACAAAAAAAAAAAEAFCBERGFHJCMEBDEE,ENCRYPTKEY default

    table test_ogg.test_ogg;

    在OGG主目录下执行(oracle用户):

    ./defgen paramfiledirprm/[extkafka].prm

    。。。

    Definitions generated for 1 table in /opt/ogg/dirdef/ext_xxb_oracle_108

    将生成的/opt/ogg/dirdef/test_ogg.test_ogg发送的目标端ogg目录下的dirdef里:

    scp -r  /opt/ogg/dirdef/[extkafka] root@192.168.50.143:/opt/ogg/dirdef/

    源端就配置完毕!有问题可以评论,我会进行回复解答

    相关文章

      网友评论

          本文标题:ogg12.3+mysql写入容器kafka(源端配置)

          本文链接:https://www.haomeiwen.com/subject/qketdctx.html