通过Oracle GoldenGate实现交…

本文详细介绍了如何通过Oracle GoldenGate在目标端创建交易跟踪表,实时记录关键业务表的DML变化,包括数据更新时间、操作类型等信息,满足客户对数据变动直观展示的需求。

    用户业务系统需要对某些重要的表实时的记录表内数据的各种DML变化, Oracle GoldenGate有一个可用来实现交易记录的跟踪,我们可以通过OGG进行相关的配置可以轻松的实现。针对客户的这一需求,下面通过一个简单的例子来看一下OGG是如何实现这个场景的.

    

    以源端表lookup为例子,在不影响正常同步的前提下,目标端新增一张交易跟踪表lookup_history,将后续增量数据同步到该表内。

在目标端配置2个replicat进程:

rep1进程------针对表lookup的实时同步(当前架构已经完成)

rep2进程---针对表lookup的交易跟踪,实时的记录表A的数据的各种变化到lookup_history内,同时记录数据变化的时间和具体的操作类型。(未来架构新增部分)

通过Oracle <wbr>GoldenGate实现交易数据跟踪

源端表lookup结构:

SQL> desc lookup

 名称                                      是否为空? 类型

 ----------------------------------------- -------- ----------------------------

 

 ID                                                 NUMBER

 DESCRIPTION                                      VARCHAR2(20)

 

 

目标表lookup结构:

SQL> desc lookup

 名称                                      是否为空? 类型

 ----------------------------------------- -------- ----------------------------

 

 ID                                                 NUMBER

 DESCRIPTION                                      VARCHAR2(20)

 

目标表lookup_history结构:

SQL> desc lookup_history

 名称                                      是否为空? 类型

 ----------------------------------------- -------- ----------------------------

 

 ID                                                 NUMBER

 DESCRIPTION                                      VARCHAR2(20)

 BEFORE_AFTER                                     VARCHAR2(10)

 DEAL_DATE                                        DATE-----------记录变化时间

 OP_FLAG                                          VARCHAR2(10)----记录变化类型

 

OGG实现方法:

1.源端捕获进程参数

GGSCI > edit params eora1

EXTRACT eora1

SETENV (ORACLE_SID=orcl)

SETENV (NLS_LANG=ZHS16GBK)

USERID goldengate, PASSWORD oracle123

EXTTRAIL ./dirdat/cc

DBOPTIONS ALLOWUNUSEDCOLUMN

tranlogoptions convertucs2clobs

getupdatebefores

nocompressdeletes

table hr.lookup; 

 

 

2.源端pump进程参数

GGSCI > edit params pp

EXTRACT pp

PASSTHRU

RMTHOST target, MGRPORT 7809, COMPRESS

RMTTRAIL ./dirdat/cc

GETUPDATEBEFORES

table hr.lookup;

 

3.目标端新添加的接收进程参数

其中粗体部分是必须的参数

GGSCI > edit params rep2

 

REPLICAT rep2

USERID goldengate, PASSWORD oracle123

ASSUMETARGETDEFS

INSERTALLRECORDS

DISCARDFILE ./dirrpt/rep2, PURGE, MEGABYTES 100

map hr.lookup, target hr.lookup_history,

COLMAP (usedefaults,

        BEFORE_AFTER=@getenv("GGHEADER","BEFOREAFTERINDICATOR"),

        DEAL_DATE=@getenv("GGHEADER","COMMITTIMESTAMP"),

        OP_FLAG=@getenv("GGHEADER","OPTYPE")

);     

 

 

测试验证

表lookup初始化后的数据,源端和目标端数据保持一致

 

源端执行以下DML操作:   

 

通过Oracle <wbr>GoldenGate实现交易数据跟踪

通过Oracle <wbr>GoldenGate实现交易数据跟踪

通过Oracle <wbr>GoldenGate实现交易数据跟踪

总结:

通过OGG上述的配置,在目标端创建一张跟踪表,来对系统关键业务表的DML操作进行跟踪和统计,这样可以很直观的显示表内记录数的变化情况,符合客户的实际需求。



 


 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值