暂无图片
Goldengate同步表delete从Oracle到Oracle但不同步每天定时清理源库过期数据delete的方案?
我来答
分享
aknight
2024-07-11
Goldengate同步表delete从Oracle到Oracle但不同步每天定时清理源库过期数据delete的方案?

现在有Oracle19c DB1 用Goldengate同步到 Oracle19c DB2

比方有个表, T1, 正常是数据全部同步,从DB1 到 DB2

现在有个需求是,保持表, T1, 正常是数据全部同步,从DB1 到 DB2的同时,表T1在DB1需要定时清理过期数据,比方要运行delete from T1 where date > sysdate-30, 要求就是只是这个清理的delete from T1 where date > sysdate-30,不能同步到DB2清理。

换句话说,正常delete要goldengate同步 表, T1,从DB1 到 DB2的。如果每天定时清理旧数据的delete delete from T1 where date > sysdate-30,,不能同步。 DB1要清除过期数据,DB2要保留,但是要同步常规的delete.

各位大神,有什么建议的实现思路?方案大纲,概要即可,多谢

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
forever

ogg可以过滤特定用户的操作,定时任务设置单独用户就可以了

暂无图片 评论
暂无图片 有用 1
暂无图片
aknight
题主
2024-07-23
谢谢,ogg可以过滤特定用户的操作,看过什么文档,或者案例,能参考参考不? 看了官方文档,好像没注意到有相关内容
forever
答主
2024-07-24
TRANLOGOPTIONS EXCLUDEUSER 可以参考下:https://blog.51cto.com/renzhiyuan/5377582 你可以直接搜ogg过滤特定用户,案例有很多哦,用的做多的是双向同步时排除ogg的同步用户
aknight
题主
2024-07-25
非常感谢。找到了 TRANLOGOPTIONS EXCLUDEUSER PDBXYZ.SCOTT https://docs.oracle.com/en/middleware/goldengate/core/21.3/reference/tranlogoptions.html
伟鹏

这个你可以在抽取进程里面使用Filter内置函数
只对操作 delete 条件date > sysdate-30 过滤掉就行了

暂无图片 评论
暂无图片 有用 0
aknight
题主
2024-07-13
https://docs.oracle.com/en/middleware/goldengate/core/21.3/coredoc/administer-mapping-and-manipulating-data.html#GUID-64130B77-5D38-4BC3-94CE-CE9C2B56BAD0 TABLE source_table, , FILTER ( [, ON INSERT | ON UPDATE| ON DELETE] [, IGNORE INSERT | IGNORE UPDATE | IGNORE DELETE] , filter_clause); 不好意思,这里,抽取进程里面使用Filter内置函数,好像只能过滤掉条件date > sysdate-30,来不同步delete。 但是比如有个随机删除的,date > sysdate-30的,还是要同步的,这样过滤掉,估计会漏掉同步了。谢谢!
伟鹏

你这样的需求的话,ogg应该是满足不了

暂无图片 评论
暂无图片 有用 0
情线

你可以针对T1表做一个触发器,对T1表的所有插入操作同步到本地的另外一张表中

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏