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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29863023/viewspace-2656381/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫同步利器 otter 雙A同步配置資料庫
- 活動回放 | 如何進行全增量一體的異構資料庫實時同步資料庫
- 資料同步:教你如何實時把資料從 MySQL 同步到 OceanBaseMySql
- 異構資料來源同步之資料同步 → DataX 使用細節
- 異構資料來源同步之資料同步 → datax 改造,有點意思
- 異源資料同步 → 如何獲取 DataX 已同步資料量?
- 資料庫同步資料庫
- 在winform中如何實現雙向資料繫結?ORM
- 利用python實現mysql資料庫向sqlserver的同步PythonMySql資料庫Server
- 阿里 Canal 實時同步 MySQL 增量資料至 ClickHouse 資料庫阿里MySql資料庫
- 什麼是資料實時同步,為什麼資料實時同步很重要
- DTS-077100 向目標庫同步資料時出錯
- Mysql資料實時同步實踐MySql
- 如何在 PyQt 中實現非同步資料庫請求QT非同步資料庫
- Linux 實現本、異地遠端資料實時同步功能Linux
- SQL Server 2014如何使用遊標迴圈向遠端資料庫插入資料SQLServer資料庫
- kettle 實時同步資料(插入/更新/刪除資料)
- 在Linux中,rsync 同步資料時,如何過濾出所有.txt的檔案不同步?Linux
- 教你如何運用python實現不同資料庫間資料同步功能Python資料庫
- 異源資料同步 → DataX 同步啟動後如何手動終止?
- 做資料庫分離讀寫時,sqlServer資料庫資料同步的問題:資料庫SQLServer
- DataX將MySql資料庫資料同步到Oracle資料庫MySql資料庫Oracle
- 異地資料中心的資料實時同步,該怎樣智慧化實現?
- rsync+inotify資料的實時同步
- 認識資料實時同步神器—Canal
- MySQL 到Oracle 實時資料同步HYXSMySqlOracle
- 異構資料來源同步之表結構同步 → 透過 jdbc 實現,沒那麼簡單JDBC
- Flink CDC 系列 - 同步 MySQL 分庫分表,構建 Iceberg 實時資料湖MySql
- C語言資料結構:雙向迴圈連結串列的增刪操作C語言資料結構
- HarmonyOS Next方舟資料管理與分散式資料庫實戰:構建高效同步架構分散式資料庫架構
- 資料結構初階--雙向迴圈連結串列(講解+類别範本實現)資料結構
- DataX將Oracle資料庫資料同步到達夢資料庫Oracle資料庫
- 資料庫系列——基於Canal實現MySQL增量資料同步資料庫MySql
- DBSync如何連線並同步MySQL資料庫MySql資料庫
- 1.4 基於OGG單表到分庫分表資料同步場景
- 高效資料移動指南 | 如何快速實現資料庫 SQL Server 到 Dameng 的資料同步?資料庫SQLServer
- 資料庫非同步操作資料庫非同步
- [資料庫]MYSQL主從同步資料庫MySql主從同步