这篇文章主要讲解了“ogg怎么防止数据死循环同步”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ogg怎么防止数据死循环同步”吧!
麦盖提ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
最近在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怎么防止数据死循环同步这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!