OGG-00918 Key column UNID is missing from map
(2016-03-15 10:17:22)分类: ogg |
oracle库11.2.0.4
源端字段:id,name
目标端字段:id,name,unid 其中unid为自增字段(触发器+序列),主键值。
通过defen生成了源端结构。
复制进程配置:
SOURCEDEFS E:\ogg\soft\dirdef\def.p
map admin.jyc, target bj.jyc COLMAP(id=id,name=name);
启动后报错如下:
OGG-00918 Key column UNID is missing from
map.
难道目标端的字段不可以比源端多吗?unid是个自增字段啊。
解决了。
map admin.jyc ,target bj.jyc, SQLEXEC (ID lookup, QUERY "select
bj.test_seq.nextval from dual", NOPARAMS),COLMAP(id =
id,name=name,unid =
@GETVAL(lookup.bj.test_seq.nextval)),keycols
(id,name);
继续测试,发现不需要异构处理,去掉SOURCEDEFS
E:\ogg\soft\dirdef\def.p也支持dml操作。
再继续测试,发现可以删掉bj.jyc上的序列触发器。unid可自增。
继续测试,如果原表增加列,那么目标端可以自动增加列,但是该列数值无法同步,必须将原表和目标端重建才可以重新同步。映射关系也需要增加该字段。变得较大。
map admin.jyc ,target bj.jyc, SQLEXEC (ID lookup, QUERY
"select bj.test_seq.nextval from dual",
NOPARAMS),COLMAP(id=id,name=name,c1=c1,unid=@GETVAL(lookup.bj.test_seq.nextval)),keycols
(id,name,c1);