首页 > 其他 > 详细

使用OGG添加唯一标识字段到目标表

时间:2019-03-12 20:30:51      阅读:340      评论:0      收藏:0      [点我收藏+]

    利用GoldenGate,可以获取到变更记录在源端对应的redo日志序号,redo中的地址RBA,如果源端是RAC,还可以拿到源端节点的编号,通过这3个值,可以定位该变更记录的唯一性。
这些信息,在GoldenGate抽取时,可以通过内置函数获取得到,然后写入到trail中,从而在目标端通过token函数从trail得到相关数据,然后插入到目标表中形成唯一键。
如下示例:
源端抽取的配置
TABLE src.table, TOKENS (
   redoseq = @GETENV(‘RECORD‘,‘FILESEQNO‘),
   redorba = @GETENV(‘RECORD‘, ‘FILERBA‘),
   redothread = @GETENV(‘TRANSACTION‘, ‘REDOTHREAD‘));


这样,在trail中的table表,就会附加上对应的这3条信息。然后在目标端的表,新增3个字段,保存这3条信息,可以通过 TOKEN 获取得到。

目标端配置

map src.table, target tgt.table2, colmap(useDefaults,
   redoseq=@TOKEN(‘redoseq‘), redoseq=@TOKEN(‘redoseq‘),  redoseq=@TOKEN(‘redoseq‘));


针对java adapter接口或big data定制开发平台,可使用 op.getToken(userTokenName) 得到token值。

ref: https://blogs.oracle.com/dataintegration/ogg-custom-adapters%3a-how-to-include-a-unique-identifier-for-every-record-in-custom-adapter
Refer to documentation: https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_datainteg.htm#GWUAD468,

使用OGG添加唯一标识字段到目标表

原文:https://www.cnblogs.com/margiex/p/10519401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!