一个奇怪的现象,OGG在DML操作这个lala.test表的时候, insert可以插入数据, 但update的时候,数据在目标端没有变化,而且还没有任何错误。
最后发现是源端问题,没找到记录。在源端执行以下语句
GGSCI (oggs.localdomain) 1> dblogin userid ***,password ***
GGSCI (oggs.localdomain) 2> info trandata lala.test
Logging of supplemental redo log data is disabled for table lala.test.
GGSCI (oggs.localdomain) 3> add trandata lala.test
Logging of supplemental redo data enabled for table lala.test.
执行之后再update的时候,数据可以正常同步到目标端。
总结:
如果不执行add trandata,insert同步没有问题(ORACLE数据库),但是在同步update或delete操作时,就会因为丢失主键报同步错误。不开启表级的最小附加日志,update的redo信息不记录没有进行更新的字段信息,如主键不更新的话主键不记录在redo中,所以会导致同步失败。