GoldenGate雙向同步配置

OGG-01161發表於2013-05-15
 
一、雙向複製節點2配置:
1)新增附加的redolog資訊
 DBLOGIN USERID ogg, PASSWORD ogg
 
 ADD TRANDATA scott.*
 
2)配置extract
GGSCI (cuug97) 11>  EDIT PARAMS EORA_1
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
TRANLOGOPTIONS EXCLUDEUSER ogg   (雙向複製的配置關鍵)
EXTTRAIL ./dirdat/aa
TABLE scott.*;

GGSCI (cuug97) 11>  ADD EXTRACT EORA_1, TRANLOG, BEGIN NOW
EXTRACT added.
GGSCI (cuug97) 12>  ADD EXTTRAIL ./dirdat/aa, EXTRACT EORA_1, MEGABYTES 5
EXTTRAIL added.
GGSCI (cuug97) 13> START EXTRACT EORA_1
3)配置pump程式
GGSCI (cuug97) 15>  EDIT PARAMS PORA_1
EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
PASSTHRU
RMTHOST cuug95, MGRPORT 7809
RMTTRAIL ./dirdat/pa
TABLE scott.*;

GGSCI (cuug97) 16>  ADD EXTRACT PORA_1, EXTTRAILSOURCE ./dirdat/aa
EXTRACT added.
GGSCI (cuug97) 17> ADD RMTTRAIL ./dirdat/pa, EXTRACT PORA_1, MEGABYTES 5
RMTTRAIL added.

GGSCI (cuug97) 18>  START EXTRACT PORA_1

4、第一節點(原來的源資料庫)
1、配置checkpoint
GGSCI (cuug95) 1> EDIT PARAMS ./GLOBALS
CHECKPOINTTABLE ogg.ggschkpt
GGSCI (cuug95) 1> exit
GGSCI (cuug95) 1> DBLOGIN USERID ogg, PASSWORD ogg
Successfully logged into database.
GGSCI (cuug95) 2> ADD CHECKPOINTTABLE
2、配置replicate
GGSCI (cuug95) 4> EDIT PARAM RORA_1
REPLICAT RORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD Ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA_aa.DSC, PURGE
MAP scott.*, TARGET scott.*;
GGSCI (cuug95) 4> ADD REPLICAT RORA_1, EXTTRAIL ./dirdat/pa
GGSCI (cuug95) 6> START REPLICAT RORA_1
二、支援DDL複製配置
1、在第兩個節點執行執行DDL同步指令碼命令:
 先進入goldengate軟體安裝目錄,以SYSDBA身份登入oracle執行以下指令碼,執行指令碼過程中,需要輸入的使用者全部是ogg,安裝模式為INITIALSETUP,如果資料字典或者某些內部的包有錯誤,則需要執行catalog.sql和catproc.sql指令碼。
SQL>@marker_setup
SQL>@ddl_setup
SQL>@role_setup
SQL>grant GGS_GGSUSER_ROLE to ogg;
SQL>@ddl_enable
 如果某項指令碼執行錯誤,需要重新執行時,先要執行清除的指令碼:ddl_remove.sql和marker_remove.sql
2、配置兩個節點的extract,在eora_1配置檔案中新增以下一行:
DDL INCLUDE OBJNAME "scott.*"
 
 最終的內容如下:
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD Ogg
TRANLOGOPTIONS EXCLUDEUSER ogg
EXTTRAIL ./dirdat/aa
DDL INCLUDE OBJNAME "scott.*"
TABLE scott.*; 
 注意:先關閉eora_1程式,再新增,然後重新啟動。
 
3、配置兩個節點的replicat
 3.1、GGSCI (cuug95) 6> DBLOGIN USERID ogg, PASSWORD Ogg
    GGSCI (cuug95) 7> add checkpointtable ogg.checkpoint
   
 如果之前已經新增過,則無需操作。
 
4、配置REPLICAT程式引數檔案,新增以下幾行到rora_1配置檔案中:
DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
DDLERROR DEFAULT DISCARD
DDLERROR DEFAULT IGNORE RETRYOP
 最終的內容如下:
REPLICAT RORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD Ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA_aa.DSC, PURGE
DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
DDLERROR DEFAULT DISCARD
DDLERROR DEFAULT IGNORE RETRYOP
MAP scott.*, TARGET scott.*; 
 注意:先關閉rora_1程式,再新增,然後重新啟動。
 
 
5、如果是序列,無需關注,因為oracle是取得序列的值進行insert的。 
6、如果源端建表的時候是基於子查詢,如果子查詢中訪問的表在目標端沒有,則無法實現ddl同步。或者子查詢中的表如果資料不一樣,則同步的表資料也不一樣,根據各自資料庫的子查詢中的表來定。
7、如果是insert操作,資料基於子查詢,如果子查詢總訪問的表目標端沒有,卻不受影響,能夠同步。
8、update某行時,如果目標資料庫沒有符合條件的行,ogg會insert一條新行。

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

相關文章