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 @ 2023-02-15 16:42  slnngk  阅读(143)  评论(0编辑  收藏  举报