您好,登錄后才能下訂單哦!
這篇文章主要講解了“ogg怎么防止數據死循環同步”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ogg怎么防止數據死循環同步”吧!
最近在ORACLE 到MYSQL的使用OGG進行數據遷移中遇到了數據在雙向同步數據死循環的問題,在正常對oracle的同步上,我們使用以下參數來防止抽取進程對復制進程提交的事務進行抽取:
TRANLOGOPTIONS EXCLUDEUSER OGG GETAPPLOPS IGNOREREPLICATES
實際上tranlogoptions excludeuser OGG 的作用是在抽取日志時排除掉OGG用戶,GETAPPLOPS 指抓取應用的事務, IGNOREREPLICATES是忽略掉復制進程的事務。
GETAPPLOPS | IGNOREAPPLOPS: Controls whether or not data operations (DML) produced by business applications except Replicat are included in the content that Extract writes to a specific trail or file. GETREPLICATES | IGNOREREPLICATES: Controls whether or not DML operations produced by Replicat are included in the content that Extract writes to a specific trail or file.
但到了MYSQL 端進行抽取發現抽取進程不支持tranlogoptions excludeuser參數,此時即使加了IGNOREREPLICATES因識別不到復制進程而不生效。
導致mysql 往 oracle同步時仍會抽取掉一部分數據往oracle走,而在我的ORACLE 到MYSQL的同步中我實際是的關系是
O ———>O————>M 之后M再分別往兩個O同步。
在《Administering Oracle GoldenGate for Windows and UNIX》手冊上9.3 Preventing Data Looping中介紹了各種數據庫端如何識別復制進程的的參數,可以來防止抽取進程抽取復制進程的事務:
DB2 z/OS, DB2 LUW, DB2 for i, and Informix
TRANLOGOPTIONS EXCLUDEUSER user
Informix中需要特別使用 EXCLUDEUSERID Database_uid
MySQL and NonStop SQL/MX
TRANLOGOPTIONS FILTERTABLE table_name
這個table_name是指checkpointtable
Oracle
在復制進程設置標簽,例如
DBOPTIONS SETTAG 0935
然后在抽取進程排除標簽
TRANLOGOPTIONS EXCLUDETAG 0935
如果有多個標簽,抽取進程必須每個都加上
當然也可用使用排除用戶的
TRANLOGOPTIONS EXCLUDEUSER user
SQL Server
TRANLOGOPTIONS EXCLUDETRANS transaction_name
這個事務名不理解,如果未設置應該默認的事務名是 ggs_repl.。原文解釋:
This parameter statement is only required if the Replicat transaction name is set to something other than the default of ggs_repl.
Sybase
TRANLOGOPTIONS EXCLUDETRANS transaction name
or
TRANLOGOPTIONS EXCLUDEUSER user name
感謝各位的閱讀,以上就是“ogg怎么防止數據死循環同步”的內容了,經過本文的學習后,相信大家對ogg怎么防止數據死循環同步這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。