HANDLECOLLISIONS是我们使用goldengate过程中常有的一个REPLICAT参数,该参数依赖于主键或唯一索引处理冲突数据,常用于初始化阶段。在数据同步阶段,对于源端没有主键表的delete,update操作会造成复制(rep)进程异常中断:
GGSCI (st) 106> edit params rep2
replicat rep2
ASSUMETARGETDEFS
HANDLECOLLISIONS
setenv (ORACLE_SID="ogg")
userid ggs,password ggs
map scott.*,target scott.*;
SQL> insert into test values(1);
1 row created.
SQL> commit;
Commit complete.
SQL> update test set id =2 where id=1;
目标端复制(rep)进程异常中断了:
2014-12-30 02:15:11 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep2.prm: Repositioning to rba 2377 in seqno 5.
2014-12-30 02:15:11 WARNING OGG-01151 Oracle GoldenGate Delivery for Oracle, rep2.prm: Error mapping from SCOTT.TEST to SCOTT.TEST.
2014-12-30 02:15:11 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep2.prm: Repositioning to rba 2377 in seqno 5.
2014-12-30 02:15:11 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rep2.prm: Error mapping from SCOTT.TEST to SCOTT.TEST.
2014-12-30 02:15:11 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep2.prm: PROCESS ABENDING.
GGSCI (st) 110> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT STOPPED REP1 00:00:00 22:04:16
REPLICAT ABENDED EP2 00:00:00 00:08:11