數(shù)據(jù)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文件是否存在,不存在則執(zhí)行如下命令(Mysql5.7+):
# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
1、開啟binlog
在/etc/my.cnf的[mysqld]下添加如下參數(shù):
# 行級日志模式
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環(huán)境變量之前都配置好了
創(chuàng)建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、配置環(huán)境變量
配置ogg環(huán)境變量文件/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,創(chuàng)建目錄文件
create subdirs
5、mysql創(chuàng)建測試表
創(chuàng)建一個用戶,在該用戶下新建測試表,用戶名、密碼、表名均為 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數(shù)據(jù)庫:
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的默認監(jiān)聽端口;DYNAMICPORTLIST動態(tài)端口列表,當指定的mgr端口不可用時,會在這個端口列表中選擇一個,最大指定范圍為256個;AUTORESTART重啟參數(shù)設置表示重啟所有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動態(tài)解析;SETENV設置環(huán)境變量,這里分別設置了mysql數(shù)據(jù)庫以及字符集;userid root,password Hismart@2019即OGG連接mysql數(shù)據(jù)庫的帳號密碼,這里使用2.5中特意創(chuàng)建的復制帳號;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動態(tài)解析;rmthost和mgrhost即目標端(kafka)OGG的mgr服務的地址以及監(jiān)聽端口;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等)等之間數(shù)據(jù)傳輸可以定義為異構數(shù)據(jù)類型的傳輸,故需要定義表之間的關系映射,在OGG命令行執(zhí)行:
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主目錄下執(zhí)行(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發(fā)送的目標端ogg目錄下的dirdef里:
scp -r? /opt/ogg/dirdef/[extkafka] root@192.168.50.143:/opt/ogg/dirdef/
源端就配置完畢!有問題可以評論,我會進行回復解答