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

数据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 [email protected]: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 [email protected]: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

[email protected]: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]

[email protected]: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] [email protected]:/opt/ogg/dirdef/

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

你可能感兴趣的:(ogg12.3+mysql写入容器kafka(源端配置))