暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OGG复制进程延迟处理思路与方法

OCM之家 2021-08-19
2085

版权声明

本文来源于公众号:Oracle一体机用户组




作者简介:王坤,北京海天起点技术服务股份有限公司高级DBA。具有Oracle OCP认证。2015年加入海天大家庭后,一直担任北京海天湖南办驻湖南电力信通公司现场高级数据库工程师。主要负责Oracle Goldengate运维工作。在Ogg整体架构部署、设计及实施、性能优化等方面有丰富的实践经验。



在我们日常的OGG运维过程中难免会遇到复制进程延迟的现象,这种数据同步不及时的现象对那些数据实时要求较高的应用系统影响比较大,下面我们通过数据库与OGG进程两个层面来简单讨论一下都有些什么方法缓解这一问题


(一)在复制端数据库删除不必要的索引。我们在做OGG数据初始化时,大多数都是将表所用索引导入到目标库。我们知道索引的建立对于查询的帮助很大,对插入与更新就不尽然了。而一般情况下我们的源端与目标端同步表的实现功能往往是不一样的,当我们源端复制表索引较多,目标端查询用不到时,我们可以drop掉这些多余索引。


(二)复制端更改分区表索引类型,将分区表的全局索引修改为本地索引,这个情形适合分区较多,数据较大的分区表的复制,本地索引对分区表的插入更新效率更高。


(三)复制库表分析。对有条件的复制端数据库我们可以定期的进行对复制表进行表分析,获得最新的表统计信息。


(四)删除表历史数据。这样做的原因想必大家都了解。但这种情况比较特殊也比较危险,适用只有插入操作的日志表。在没有配置get truncate参数或目标端不需要历史数据时可以考虑。

 

当然我们在数据库层面能做的事情远远不止这一些,各种数据库优化的方法就不再讨论。


下面我们来讨论下OGG软件层面怎么缓解延迟这一问题:其实就是一个字’拆’。OGG复制进程的原理是单个复制进程读取队列文件中的数据来匹配自己参数配置表的列表依次以事务为单位还原到目标数据库中执行。所以当我们一个进程中出现多个热点表时,就有可能出现CPU、IO等等待现象造成延迟。这是我们可以将其中一部分热点表拆分到另外一个进程来缓解。具体步骤如下:

 

示例将repa中的test表加入到repb中


新建复制进程

edit params repb

—将拆分出来的表放入参数中

map user.test,target user.test

add replicat repyb, exttrail goldengate/dirdat/xx

停止原来的复制进程,并获取rba号

stop repa

Info repa

输出结果如下:

REPLICAT   REPA    Last Started 2017-04-01 09:55   Status STOPED

Checkpoint Lag       00:00:00 (updated 00:00:02 ago)

Log Read Checkpoint  File ./dirdat/xx091249

2017-05-18 16:32:40.000506  RBA 13442118


修改新增进程启动点

alter replicat repb, extseqno 91249 extrba 13442118


启动进程

start repa

start repb


有的朋友可能会有疑问,只剩一张表还是有延迟怎么办,方法还是可以拆,方法与上面基本一致:

repa参数:

map user.test,target user.test,FILTER(@RANGE (1,2));

repb参数:

map user.test,target user.test,FILTER(@RANGE (2,2));

 

其他操作方法与上面一致

test拆分成了2份两个进程进行同步。


分别设置filter(@range(1…n,n)这样就可以拆成n个线程来同步我们延迟大的数据表。

 

但是此种方法比较极端,稳定性不如整表复制。我测试过,但是数据表只同步了部分数据,可能是参数设置有误,或者版本支持度不够,后来从索引方面找到解决方法就没有深究了。大家有需要的可以研究下,相信此功能还是可以实现的。

 

当然我们的实际情况可能比上述情况远远复杂得多,甚至有带宽影响投递队列速率从而影响复制进程延迟的。我们就需要具体原因具体分析了,但总体我们可以从OGG软件进程配置优化、数据库优化和硬件优化三个方面着手。

近期精彩文章推荐

动态采样造成的故障和分析

Best Practices and Recommendations for RAC DB with SGA译文

ASM元数据的格式化收集及ASM磁盘头备份(上)

ASM元数据的格式化收集及ASM磁盘头备份(下)

goldengate误操作把根目录清空恢复

RedHat 6.5配置VNC远程桌面


中国OCM之家

专注数据    共现梦想

QQ群:554334183


文章转载自OCM之家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论