加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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);


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有