Oracle GoldenGate 性能调优之TESTMAPPINGSPEED

网友投稿 1118 2022-11-08

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

Oracle GoldenGate 性能调优之TESTMAPPINGSPEED

前言Oracle GoldenGate 作为Oracle Data Integrate 领域中最重要的产品,支持将不同环境下各种关系型数据库发生的交易量数据的实时捕捉、变换、投递到不同的目标端,包括:传统的数据库、数据仓库、大数据平台等。

目前Oracle GoldenGate在日志分析模式上,在Oracle Database 11.2.0.3 版本以上的提供集成日志分析模式外,在HP NONESTOP 使用绑定应用LIB的模式,而对于其它类似DB2、Sybase、mysql 等数据库平台.依旧采用的是经典模式,也就是说Oracle GoldenGate的日志分析进程,需要直接访问数据库的日志文件,进行解析,然后将解析出来的结果写到OGG的队列文件中。

从架构上我们可以看出,在经典模式下整个复制链路的分为三个进程包括,分别是源端日志分析进程、数据传输进程,目标端的交易投递进程(目标端接受进程Collector Server暂且不表)。

如果本地部署模式下(Oracle GoldenGate 还支持远程抓取的第三方部署模式)整个复制链路的效率主要由日志分析进程以及交易投递进程导致。而当数据复制链路发生时间延迟的时候,如何准确的定位导致复制链路性能的瓶颈呢?这就是我们接下来要讨论的重点。

关于TESTMAPPINGSPEEDTESTMAPPINGSPEED此参数在日常进行OGG复制链路优化的时候非常有用。在日志分析进程以及交易投递进程中使用该参数的时候,进程将忽略所有的数据的输出结果。

以日志分析进程为例:一旦配置了这个参数,日志分析进程会完成所有配置参数中对应的日志文件的分析,数据的过滤、读取,但是不会将对应的交易记录写到队列文件中。

对于交易投递进程来说,一旦配置这个参数,交易投递进程同样会读取队列文件的数据,然后对应完成过滤映射的操作,但是不会将交易最终投递到目标端数据库。

从上面的参数说明,我们可以看到,使用该参数的时候,我们可以对比不使用该参数的输出结果进行有效对比,从而定位相关进程的性能瓶颈到底是什么。

例如,当使用该参数以后,日志分析进程的效率大幅度提高,这个时候我们就可以断定对应的进程的性能瓶颈是由于日志分析进程将相关记录信息写到队列文件中的IO导致的,反之亦然。

搭配这Oracle GoldenGate 的Trace 参数的使用,我们可以更准确的定个位Oracle GoldenGate相关进程性能瓶颈之所在。

使用步骤1. 记录当前日志分析进程当前的检查点

GGSCI> info  Extract_name, showch

2. 启动日志分析进程收集当前日志分析进程效率

GGSCI> stats  Extract_name, totalsonly *, reportrate min

3. 创建测试日志分析进程ext_test

GGSCI> add extract ext_test, tranlog,  begin now

4. 测试日志分析进程Ext_test复用Extract_name进程的参数文件,增加参数

TESTMAPPINGSPEED

REPORTCOUNT EVERY 1 minutes, rate

5. 修改日志分析进程Ext_test起始点

GGSCI> alter extract ext_test, begin  xxxx

6. 收集日志分析进程ext_test效率

GGSCI> stats  ext_test , totalsonly *, reportrate min

对比两个进程的运行的效率结果,如果性能测试的日志分析进程EXT_TEST效率高过现有的复制Extract_name, 那就表示日志分析进程的性能瓶颈在写队列的时候的磁盘IO上。那我们需要从本地磁盘IO上提高效率,对应的手段有磁盘改变RAID模式,使用独立磁盘或则闪盘等。

如果两个进程的效率差别不大,那就表示日志分析进程的性能瓶颈在日志分析进程本身读取和解析日志方面,这个时候,我们就需要定位,到底是读取日志的速度慢呢,还是解析日志的速度慢。

我们知道,无论日志分析进程中复制范围内包含了多少张表,日志分析进程都需要访问整个的数据库的日志,所以,我们可以将所有的TABLE参数都删除,table参数对应只保留一张交易非常少或则根本没有没有交易的表。然后停止性能测试进程,将进程修改回刚开始的开始点,重启性能测试进程Ext_test,然后在对比结果。以最后确定日志分析进程的性能瓶颈之所在。

这里需要提示的是如果日志分析进程里面存在某些数据不直接从日志获得的时候(直接取实际的表上的字段数据等),需要在性能测试进程里面搭配Oracle GoldenGate 的Trace/Trace参数的一起使用,我们可以更准确的定个位Oracle GoldenGate相关进程性能瓶颈之所在。

通过系统命令检查本地进程读取日志文件的速率,调增增加本地日志额分析进程的内存参数大小,这些都是OGG日志分析进程调优的一些有效手段。

作者简介吴剑,甲骨文云平台资深售前顾问,专注Oracle  Data Integration Solution 产品,Oracle GoldenGate骨灰级玩家同时关注Bigdata、Block of Chain, Data Stream Analyse, Data Governance产品和技术方向研究22年IT行业从业经验,擅长企业应用架构设计及产品应用研发。您可以通过kenal.wu@oracle.com,与他联系。

上一篇:软件测试培训之为什么进行性能测试?
下一篇:软件测试培训之性能测试培训的流程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~