Goldengate 應用環境 mysql to oracle

來源:互聯網
上載者:User

標籤:

前言

一個需求,mysql的某些表,即時同步至oracle,於是就產生了這篇文章,安裝過程中,走了些彎路,原因是沒太深刻理解,官方提供安裝步驟所代表的意義。

環境

源端:mysql-server 5.5.39 , Goldengate for mysql 121210 , MySQL-client-5.5.28-1.linux2.6.x86_64.rpm , mysql-connector-odbc-5.2.7-1.el6.x86_64.rpm

目標端:oracle10g,linux Goldengate 11_1_1

注意:Goldengate版本的不一致,會存在相容問題,比如抓取進程啟動不了,投遞進程也沒發啟動等,本環境就是基於不相容,但官方提供瞭解決方法,詳細過程,我會註明。

開始吧,源端操作

注意:mysql預設我用root賬戶做同步操作

基礎環境安裝配置,詳細安裝不做闡述

    假設你已經安裝好了mysql-server,並安裝了MySQL-client-5.5.28-1.linux2.6.x86_64.rpm,mysql-connector-odbc-5.2.7-1.el6.x86_64.rpm

Goldengate for mysql 121210 也已拷貝至mysql伺服器.

1.修改 vi /etc/my.cnf,添加如下參數

[mysqld]log-bin=mysql-bin      --開啟二進位檔案,可以修改為其他路徑 例子: /var/lib/mysql/hh-bin max_binlog_size=4096binlog_format=row     --日誌格式為行,這個很重要額,不然Goldengate,抓取進程沒法啟動socket=/tmp/mysql.sock  [client]socket=/tmp/mysql.sock 
注意:這有一個很大的坑,添加後,需用grep "binlog_format" /etc/my.cnf 檢查下是否有重複參數,其他做類似操作.


2.建立 /usr/local/etc/odbc.ini 檔案

[ODBC Data Sources]OGGDB1 = MyODBC 3.51 Driver DSNOGGDB1Driver = /usr/lib64/libmyodbc5a.so  --對應的是mysql-connector-odbc-5.2.7-1.el6.x86_64.rpm這個包,rpm -ql mysql-connector-odbc-5.2.7-1.el6.x86_64.rpm 查看Description = Connector/ODBC 3.51 Driver DSNServer = localhostPort = 3306User = rootPassword = 111111Database = TOption = 3Socket = /tmp/mysql.sock

3.建立列定義...重要  --這部應放在安裝ggsci後執行

[[email protected] gg]# vi dirprm/dsalesab.prm[[email protected] gg]# cat dirprm/dsalesab.prmDefsFile dirdef/dsalesab.def, PurgeSourceDB T, UserID root, Password 111111Table T.*; [[email protected] gg]# ./defgen  paramfile  dirprm/dsalesab.prm NOEXTATTR  --注意goldengate版本不一致,添加了NOEXTATTR選項

scp dirdef/dsalesab.def [email protected]:/opt/oracle/gg/dirdef --拷貝產生的def檔案至目標端,注意 以後新添加了表,也要重複這樣做一次

4.安裝ggsci

[[email protected] gg]# tar -xvf ggs_Linux_x64_MySQL_64bit.tar[[email protected] gg]# ./ggsciGGSCI (host02) 1> Create Subdirs 

ggsci這樣就安裝結束了。

5.配置mgr進程

GGSCI (ramq2) 3> edit param mgrGGSCI (ramq2) 4> view param mgr   port 7809   --添加連接埠

6.配置抓取進程

GGSCI (ramq2) 8> edit param etGGSCI (ramq2) 8> view param etExtract et   --抓取進程名字setenv (MYSQL_HOME="/usr/local/mysql")   --mysql家目錄ExtTrail ./dirdat/ta, format release 11.1  --注意:format release 11.1 預設我版本不一致,才載入此選項,不然目標端,沒法寫入資料SourceDB [email protected]:3306, UserID root, Password 111111  --串連MySQLTranLogOptions AltLogDest  /usr/local/mysql/data/mysql-bin.index  --mysql索引記錄檔Table T.*; --抓取的表
GGSCI (host01) > Add Extract et , TranLog, Begin Now  --添加et進程EXTRACT added.GGSCI (host01) > Add ExtTrail ./dirdat/ta, Extract et, Megabytes 5  --添加抓取資料存放檔案ta,抓取進程et操作,大小5m...可以適量加大EXTTRAIL added.

7.配置傳輸進程

GGSCI (ramq2) 9> edit param pt
GGSCI (ramq2) 9> view param ptExtract ptRmtHost 192.168.1.105, MgrPort 7809, Compress --投遞目標機ggRmtTrail ./dirdat/p5, format release 11.1 -- 建立目標端資料檔案p5 注意: format release 11.1 ,解釋同上PassthruTable T.*;
GGSCI (host01) > Add Extract pt, ExtTrailSource ./dirdat/ta  --從哪裡取資料EXTRACT added.GGSCI (host01) > Add RmtTrail ./dirdat/p5, Extract pt, Megabytes 5  --添加目標端p5檔案,要添加成功,目標端mgr也該啟動,資料大小5mRMTTRAIL added.

 

目標端操作

假設oracle已安裝好

檢查環境變數

ORACLE_BASE=/opt/oracle             ORACLE_HOME=$ORACLE_BASE/102ORACLE_SID=orclLD_LIBRARY_PATH=/opt/oracle/102/lib:$LD_LIBRARYPATH  --注意:不對,ggsci沒法啟動PATH=$PATH:$ORACLE_HOME/bin:$HOME/binexport ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH  PATH

1.安裝ggsci,方法同上,不在囉嗦..

配置mgr進程
GGSCI (ramq2) 3> edit param mgrGGSCI (ramq2) 4> view param mgr   port 7809   --添加連接埠

添加全域設定檔
GGSCI (gg) 387> edit param ./GLOBALSGGSCI (gg) 387> view param ./GLOBALSCHECKPOINTTABLE system.checkpointtable
--為什麼要添加呢?暫時想不起來了,但必須有,如果要做雙向同步,另一方也需添加

2.添加複製進程,目的是把傳輸過來的資料,取出,寫入oracle

GGSCI (gg) 389> view param rmyreplicat rmysetenv (NLS_LANG=American_America.AL32UTF8) --對應mysql編碼,不然中文亂碼userid system,password 111111HANDLECOLLISIONS --資料結構的一致性,不然delete ,update ,進程就掛了--ASSUMETARGETDEFS --想要操作ddl 就開啟把SourceDefs dirdef/dsalesab.def  --還記得源端產生的def檔案嗎discardfile ./dirrpt/rmy.dsc,append,megabytes 50  --資料複製寫入失敗的記錄,很重要額,出了錯誤,就可以看這個。map "T.t1", target chis.my;  --坑額,mysql的表,需加""號map "T.CH*", target chis.*;--map T.*, target chis.*;
Add Replicat p5 , ExtTrail ./dirdat/p5   --添加複製進程
啟動

ok,完成了,源端和目標端啟動進程吧!

常用命令

start extract *   --啟動抓取進程  all

start replicat *   --啟動複製進程 all

info all   --查看所有進程

stats  進程名  --目標端操作,查看複製進程工作沒

view report 進程名 --查看日誌資訊

send [replicat|extract ]  進程名 ,report  --發送 抓取進程或寫入進程的報告 擷取後執行 view report 進程名 //輸出報告

help start  extract  --擷取協助資訊

start replicat  進程名   SKIPTRANSACTION    --複製進程遇到錯誤,跳過錯誤,啟動

提示: 善用help

總結

 寫這教程耗時1個半小時,力求完美,但還是不夠詳細,忘讀者諒解.

安裝過程中參考了如下文章:

http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/goldengate/11g/mysql_orcl/index.html  --官方教程,其中map mysql表沒打" "號,坑...

http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/goldengate/11g/GGS_Sect_Config_UX_MSQ_to_UX_ORA.pdf --官方原味文檔,無bug

 

Goldengate 應用環境 mysql to oracle

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.