配置ogg異構oracle-mysql 雙向同步注意事項


雙向同步需要考慮的是怎么解決循環復制,以及同時更新一張表以誰為基准。

配置過程就不寫了,大致和oracle到mysql的單向+mysql到oracle的單向差不多。

需要注意的有如下幾點:

1.oracle和mysql的2端,抽取(extract)和應用(replication)應該使用不同的用戶

2.為解決禁止循環復制,應該在ext進程配置3個參數,如下:

oracle的extract:

extract ext4
dynamicresolution
userid ggs,password ggs
RANLOGOPTIONS EXCLUDEUSER repggs GETAPPLOPS IGNOREREPLICATES 
exttrail /u01/ogg/11.2/dirdat/dd
table hr.ah6;

mysql的extract:

extract ext5
setenv (MYSQL_HOME="/u01/mysql")
sourcedb sure@localhost:3306,userid root,password 123456
tranlogoptions altlogdest /tmp/binlog.index
TRANLOGOPTIONS EXCLUDEUSER reproot GETAPPLOPS IGNOREREPLICATES 
exttrail /u01/ogg/11.2/dirdat/mb
--dynamicresolution
--gettruncates
table sure.ah6;

只復制應用產生的數據,忽略replication產生的數據,以及忽略replication進程的用戶。

3. ./GLOBALS 是全局變量,只在replication的時候有用,所以配置的時候需要加上:

GGSCHEMA repggs --這個參數只在oracle里面有
CheckpointTable repggs.checkpointtab --這個參數oracle和mysql里面都有

4.在extract用ggs/root用戶,在replication用repggs/reproot用戶

5.因為是雙向同步,所以同一個表,比如說ah6,在oracle生成的define要傳遞到mysql去,在mysql生成的define也要傳遞到oracle去。

所以,建議命名規則是oracle->mysql:ah6_o2m.prm,mysql->oracle:ah6_m2o.prm

6.從oracle復制到mysql的dml操作,需要手工commit,這個還沒找到解決的方法(除了把auto_commit改為on)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM