配置GoldenGate增量資料同步機制

junsansi發表於2011-07-12

在之前的文件介紹的GoldenGate安裝和初始化環境的配置。並且通過簡單的例項演示了,通過GoldenGate自帶的Direct Load功能,從源端一次性初始化資料到目標端,參見:Oracle GoldenGate安裝應用及初始化資料示例

資料完成初始化後,緊接著會面臨後續資料同步的問題,本節通過例項介紹,如何配置GoldenGate滿足這種場景的需求。

在前面的配置中,我們在jss使用者下建立了j1表,這裡仍以該表為例,增量同步ora9i下的jss.j1物件到目標端同名帳戶下。

源端配置

首先連線到資料庫:

    GGSCI (ora9node1) 5> dblogin userid ggate@source, password ggate 

    Successfully logged into database.

要同步的物件需要啟用supplemental logging,執行add trandata命令:

    GGSCI (ora9node1) 6> add trandata jss.j1

    Logging of supplemental redo data enabled for table JSS.J1.

注意,執行add trandata命令前,必須連線到源端資料庫,每個要同步的物件都需要執行建立trandata,add trandata命令支援萬用字元,當需要處理多個物件時可以在一定程度上簡化命令列數。

建立完成後,可以通過info trandata命令,檢視指定物件的附加日誌是否已經啟動:

    GGSCI (ora9node1) 7> info trandata jss.j1

    Logging of supplemental redo log data is enabled for table JSS.J1

也可以在Oracle資料庫以通過user_log_groups資料字典查詢附加日誌資訊。

建立一個新的extract程式,執行命令如下:

    GGSCI (ora9node1) 8> add extract ext2,tranlog,begin now,threads 1

    EXTRACT added.

配置新建立的ext2相關引數,執行命令如下:

    GGSCI (ora9node1) 9> edit params ext2 

增加下列內容:

    extract ext2

    userid ggate@source, password ggate

    rmthost 172.16.1.110, mgrport 7809

    rmttrail ./dirdat/dt

    table jss.j1;

配置trail檔案,儲存extract的資料到目標端伺服器:

    GGSCI (ora9node1) 11> add rmttrail ./dirdat/dt, extract ext2

    RMTTRAIL added.

隨後,就可以啟動ext2程式:

    GGSCI (ora9node1) 12> start extract ext2

    Sending START request to MANAGER ...

    EXTRACT EXT2 starting

目標端配置

編輯全域性引數檔案:

    GGSCI (rhel5u3) 1> edit params ./GLOBAL 

增加下列內容:

    GGSCHEMA ggate

    CHECKPOINTTABLE ggate.checkpoint 

連線到目標端資料庫:

    GGSCI (rhel5u3) 2> dblogin userid ggate, password ggate

    Successfully logged into database.

建立一個檢查點表,Replicat通過該表維護讀取位置:

    GGSCI (rhel5u3) 3> add checkpointtable ggate.ggschkpt

    Successfully created checkpoint table GGATE.GGSCHKPT.

建立新的replicat程式:

    GGSCI (rhel5u3) 4> add replicat rep2, exttrail ./dirdat/dt, checkpointtable ggate.ggschkpt

    REPLICAT added.

編輯rep2配置檔案:

    GGSCI (rhel5u3) 5> edit param rep2

增加下列內容:

    REPLICAT rep2

    ASSUMETARGETDEFS

    USERID ggate@target, PASSWORD goldengate

    DISCARDFILE ./dirrpt/rep2_gg2.dsc, PURGE

    MAP jss.*, TARGET jss.*;

儲存退出後,啟動複製程式:

    GGSCI (rhel5u3) 6> start replicat rep2

    Sending START request to MANAGER ...

    REPLICAT REP2 starting

配置工作至此完成,接下來就可以通過SQL語句,在源端對jss.j1表執行dml操作(由於未執行DDL指令碼,當前的配置環境仍不支援DDL同步),然後目標端檢視是否順利接收並應用。

    ORA9I> insert into jss.j1 values (23624,'a');

    1 row created.

    ORA9I> commit;

    Commit complete.

目標端執行查詢:

    RHEL5> select * from jss.j1 where id=23624;

            ID VL

    ---------- ------------------------------

         23624 C

同步成功。

=============================================

關聯閱讀:

Oracle GoldenGate安裝應用及初始化資料示例

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-701976/,如需轉載,請註明出處,否則將追究法律責任。

相關文章