需求:
通过OGG把源端表1同步到目标端表2
但表1和表2的主键不一致
解决方法:
通过OGG的keycols (XXX) 函数在目标端R进程指定主键列;
在目标端对源端的主键列建立索引。
在源端生成表定义文件并传到目标端。
目标端R进程的格式:
edit param RDNYY
Replicat RDNYY
Sourcedefs E:/ggs/dirdef/dednxk001.def ##表定义文件
handlecollisions
batchsql
SETENV (NLS_LANG = "AMERICAN_AMERICA.AL32UTF8")
Userid goldengate, password goldengate
GROUPTRANSOPS 1000 ##数据1000行提交一次
MAXTRANSOPS 1000
Discardfile E:/ggs/dirrpt/rdnyy.dsc, append, megabytes 100
map DB_DSJFXPT.P_FHYDLGSQY , target EXDB.P_FHYDLGSQY , colmap (usedefaults , OGGTB_SJ= @date ("yyyy-mm-dd hh:mi:ss", "JTS", @GETENV("JULIANTIMESTAMP"))), keycols (S_GUID) ;
##keycols (S_GUID)函数之间有空格,括号内是源端主键列。