goldengate过滤特性使用

 

以下操作在源端的远程投递进程上操作

字段值过滤
1.停掉远程投递进程
stop extract dpep

 

2.编辑参数,加入where语句

复制代码
GGSCI (ogg as goldengate@slavea) 212> view params dpep

extract dpep
useridalias slnngk
RmtHost 192.168.1.104, MgrPort 7809, Compress
RmtTrail /goldengate19c/dirdat/pump103/ep
gettruncates
Passthru
table hxl.tb_ogg_test, where (name <>'hxl' and name <>'jjf');
复制代码

 

满足where条件的都不会同步,比如insert,update,delete,即使主库update的值为where指定的值的记录,ogg也不会同步.

 

3.启动远程投递进程
start extract dpep

 

过滤列(源端已经存在)

1.编辑远程投递参数修改如下(该列从库已经存在)
table hxl.tb_ogg_test,colsexcept(name);

然后重启动
stop extract DPEP
start extract DPEP

2.主库像该列写入数据
SQL> insert into tb_ogg_test(id,name) values(36,'yyyyyy');
SQL> commit;


从库发现该记录同步过来了,但是列的值没有通过过来
SQL> select id,name from tb_ogg_test where id=36;

ID NAME
---------- ----------
36

 

过滤列(源端不存在)
1.编辑远程投递参数修改如下(该列从库不存在)
table hxl.tb_ogg_test,colsexcept(name3);

然后重启动
stop extract DPEP
start extract DPEP

 

2.主库上添加列
alter table tb_ogg_test add name3 varchar2(32);

发现从库也会同步该字段


SQL> desc tb_ogg_test;
Name Null? Type
------------------------------------------------------------
ID NOT NULL NUMBER
NAME VARCHAR2(32)
CREATE_TIME DATE
MODIFY_TIME DATE
NAME1 VARCHAR2(32)
NAME2 VARCHAR2(32)
NAME3 VARCHAR2(32)

3.主库写入数据
SQL> insert into tb_ogg_test(id,name,name3) values(37,'ggggggg','3333333');
SQL> commit;


发现从库是不会同步该字段的
SQL> select id,name,name3 from tb_ogg_test where id=37;

ID NAME NAME3
---------- ---------- --------------------------------
37 ggggggg

 

-- The End --

 

posted @   slnngk  阅读(148)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示