oracle大表复制加并行,GoldenGate复制单表开并行

最近有几项业务下线,需要从一张表中删除6.8亿多条数据。想办法把数据删除掉了,但对应的ogg灾备端复制时有了的延迟,而且延迟的时间起来越长。

对于表太多造成的延迟可以把所有表分为多个组来做复制,于是想复制进程是否可以对单表复制开并行。上网查到了相关的资料,可以使用@RANGE函数对单表作表内的拆分,通过对表上主键列作hash算法将该表上发生的变更均分到多个replicat上来降低单个replicat组件的负载。

动手实验一下:

ogg搭建过程不再重复,从网上就可以查到。

实验过程:模拟在源端对表scott.emp1做大量的dml操作,复制进程出现延迟,在目标端对复制表scott.emp1开并行3个进程。

源端插入数据:

目标端有延迟

停掉复制进程

拆分复制进程,对表scott.emp1分三个进程复制

#源复制进程

源进程修改为

map scott.emp1, target scott.emp1 ,FILTER(@RANGE(1,3));

多复制出两个参数文件:

添加两个复制进程,extseqno和extrba与源进程一致

启动复制进程

查看数据库里ogg对应的会话

可以看到出现了三个会话,都是对应的对表scott.emp1的插入语句。也就是说实现了对scott.emp1表的并行复制。

MOS上也有相关的文档介绍相应的功能,文档:1320133.1和1512633.1

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值