利用OGG實現Oracle數據庫到MySQL數據庫的單向同步

目錄

環境介紹

安裝軟件

配置進程

測試數據同步

軟件和OGG常用命令下載鏈接


環境介紹

源:Centos7.3+Oracle11.4

目標:Centos7.3+MySQL2

 

安裝軟件

1、MySQL數據庫安裝

略(mysql開啓二進制日誌、創建OGG用戶和test數據庫等操作可以一起做)

2、Oracle數據庫安裝

略(開啓歸檔、開啓附加日誌創建OGG用戶)

3、OGG軟件安裝

#將OGG軟件上傳到Oracle數據庫服務器
#將軟件進行解壓。-C 後面是解壓的目錄,可以先行創建這個目錄
tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C ./ogg/
#我這裏的解壓目錄爲/home/ogg
cd /home/ogg
./ggsci

完成上面的步驟如果出現如下所示的圖證明OGG安裝完成了

創建OGG工作目錄命令:create subdirs

4、在MySQL服務器執行Oracle服務器同樣的第三步操作

配置進程

1、源端

#添加表附加日誌,我這裏添加過了。所以顯示already enabled for table OGG.STUDENT

GGSCI (oracle) 52> dblogin userid ogg,password ogg
Successfully logged into database.

GGSCI (oracle) 53> add trandata ogg.student

Logging of supplemental redo log data is already enabled for table OGG.STUDENT.

GGSCI (oracle) 54> 

#配置global

GGSCI (oracle) 54> edit params ./GLOBAL
#添加文件內容如下
ggschema ogg

#創建管理進程,並啓動

GGSCI (oracle) 56> edit param mgr

#添加文件內容如下
port 8006
dynamicportlist 8006-8010
autorestart er *, retries 5, waitminutes 3
purgeoldextracts /home/ogg/dirdat/**,usecheckpoints,minkeepfiles 10
LAGREPORTHOURS 5
LAGINFOMINUTES 10
LAGCRITICALMINUTES 15

#啓動
GGSCI (oracle) 57> start mgr
#查看狀態
GGSCI (oracle) 58> info all
#可以看到狀態爲running

#創建extract進程,並啓動

GGSCI (oracle) 59> edit params ext1

#文件內容
extract ext1
setenv(NLS_LANG = "SIMPLIFIED CHINESE.AL32UTF8")
userid ogg,password ogg
exttrail ./dirdat/e1
table ogg.student;

#table後面的分號要注意

GGSCI (oracle) 60> add extract ext1,tranlog,begin now
GGSCI (oracle) 61> add exttrail ./dirdat/e1,extract ext1
#查看
GGSCI (oracle) 62> info all
#此時可以看到有個EXTRACT(EXT1)stopped
#啓動
GGSCI (oracle) 63> start ext1

#創建pump進程,並啓動

GGSCI (oracle) 64> edit params push

#文件內容
extract push
setenv(NLS_LANG = "SIMPLIFIED CHINESE.AL32UTF8")
passthru
userid ogg,password ogg
rmthost 目標數據庫服務器IP,mgrport 8006
rmttrail /root/ogg/dirdat/e1
table ogg.student;

#exttrailsource /home/ogg/dirdat/e1 路徑與ext1進程抽取到的數據路徑一致
GGSCI (oracle) 65> add extract push,exttrailsource /home/ogg/dirdat/e1

#rmttrail /home/mysql/goldengate/dirdat/e1 路徑與mysql端獲取數據的路徑一致	
GGSCI (oracle) 66> add rmttrail /root/ogg/dirdat/e1,extract push

GGSCI (oracle) 67> info all
#此時可以看到有個EXTRACT(PUSH)stopped
#啓動
GGSCI (oracle) 68> start push

#創建要同步的表的定義
#創建參數文件
GGSCI (oracle) 69> edit param test

#文件內容
defsfile ./dirdef/test.def
userid ogg, password ogg
table ogg.student;

GGSCI (oracle) 70> exit

#生成表定義文件
./defgen paramfile ./dirprm/test.prm
#此時在目錄dirdef生成文件test.def

#傳至目標庫目錄
scp /home/oracle/ogg/dirdef/test.def root@目標數據庫服務器IP:/root/ogg/dirdef/

2、目標端

#創建管理進程,並啓動
GGSCI (mysql) 2> edit param mgr

#文件內容
port 8006
dynamicportlist 8006-8010
autorestart er *, retries 5, waitminutes 3
purgeoldextracts /root/ogg/dirdat/**,usecheckpoints,minkeepfiles 10
LAGREPORTHOURS 5
LAGINFOMINUTES 10
LAGCRITICALMINUTES 15

#啓動
GGSCI (mysql) 3> start mgr


#配置global
GGSCI (mysql) 4> edit params ./GLOBALS
#文件內容
ENABLEMONITORING

GGSCI (mysql) 5> edit params ./globals
#文件內容	
checkpointtable test.checkpoint_table

#配置檢查點
#登錄
GGSCI (mysql) 6> dblogin sourcedb test@MySQL數據庫IP:3306 userid ogg password Root!!2018
#配置檢查點
GGSCI (mysql) 7> add checkpointtable test.checkpoint_table

#查看檢查點
GGSCI (mysql) 8> info checkpointtable test.checkpoint_table

#創建replicat進程並啓動
GGSCI (mysql) 9> edit params REP1

#文件內容
replicat rep1
sourcedefs /root/ogg/dirdef/test.def
TARGETDB test@MySQL數據庫IP:3306,userid ogg,password Root!!2018
reperror default,discard
discardfile /root/ogg/dirrpt/rep1.dsc,append,megabytes 50
allownoopupdates
map ogg.student,target test.student;

GGSCI (mysql) 10> add replicat rep1,exttrail /root/ogg/dirdat/e1,checkpointtable test.checkpoint_table

#啓動
GGSCI (mysql) 11> start rep1

測試數據同步

在源端插入一條測試數據。我們觀察源端的抽取進程和投遞進程的工作狀態如下圖所示:

此時我們觀察目標端的複製進程的工作狀態如下圖所示:

軟件和OGG常用命令下載鏈接

https://download.csdn.net/download/u011192409/11208923

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章