OGG经典抽取模式读取redo慢的检查步骤,可以采用以下几个步骤来排查。

步骤一,确认是否抽取进程的写入有问题


1. 在原有抽取进程上,执行如下命令,统计抽取进程的效率

GGSCI> stats extract <extract_name>, totalsonly *, reportrate sec

GGSCI> stats extract <extract_name>, totalsonly *, reportrate min

2. 拷贝该进程的参数为另一个参数文件,如etest.prm

3. 修改etest.prm中的相关信息

4. 添加如下2行到etest参数文件中

TESTMAPPINGSPEED

REPORTCOUNT EVERY 5000 RECORDS

5. 添加etest进程
   GGSCI> add extract etest, tranlog, begin now
   修改进程从慢的位置开始读取,比如从读取慢的某个归档开始
   GGSCI>alter extract etest, extseqno <arch_seq_no>, extrba 0

6. 启动etest进程
   GGSCI>start etest

7. 等几分钟后,再做一次抽取效率统计

GGSCI> stats extract etest, totalsonly *, reportrate sec

GGSCI> stats extract etest, totalsonly *, reportrate min

如果统计结果与前面的结果有明显差异,说明抽取进程写入队列文件很慢,需要检查写入磁盘的IO。

如果抽取效率变化不大,则继续排查。

步骤二,确认是否使用了fetch造成读取DB慢

8. 修改etest进程,注释掉所有表的抽取,只保留或添加一张变化量很小的测试表;
   如果性能有明显提升,则说明问题是在日志处理上。OGG解析日志有两部分工作,一个是直接解析日志,另一个是从DB中获取(fetch)需要的数据。
   为了确认是否从DB获取造成性能下降,修改etest为如下:

--TESTMAPPINGSPEED

TRACE ./dirtmp/ext.trc

TRACE2 ./dirtmp/ext.trc2

使用alter etest,使其仍然从前面测试的开始点去读取,运行一段时间后,检查ext.trc, ext.trc2,查看里面是否有select语句,这些select语句是否执行时间很长,如果是,则表明从DB获取数据消耗太多时间,需要由DBA来检查DB是否需要优化。
   另外,如果在DB日志中有提示undo空间超时或snapshot错误,则在抽取进程中添加FETCHOPTIONS NOUSESNAPSHOT,要求ogg extract从DB获取数据,而不是snapshot。

步骤三,系统硬件排查

9. 如果只保留一张表,性能仍然没有提升,在CPU、内存没有问题的情况,极有可能是因为DB日志对应的磁盘IO不行。可以使用dd命令来测试一下磁盘的读写性能。

使用隐含参数testMappingSpeed排查GoldenGate抽取慢的步骤的更多相关文章

  1. js的隐含参数(arguments,callee,caller)使用方法

    在提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments arguments 该对象代表正在执行的函数和调用它的函数的参数.[function.]arguments[ ...

  2. 传递给函数的隐含参数:arguments及递归函数的实现

    传递给函数的隐含参数:arguments当进行函数调用时,除了指定的参数外,还创建一个隐含的对象——arguments.arguments是一个类似数组但不是数组的对象,说它类似是因为它具有数组一样的 ...

  3. [20190417]隐含参数_SPIN_COUNT.txt

    [20190417]隐含参数_SPIN_COUNT.txt--//在探究latch spin计数之前,先简单探究_SPIN_COUNT.实际上oracle现在版本latch spin的数量不再是200 ...

  4. [20190401]隐含参数_mutex_spin_count.txt

    [20190401]隐含参数_mutex_spin_count.txt --//上午做了一些测试关于semtimedop函数调用,发现自己上个星期在一些问题上理解错误.--//相关链接:--//htt ...

  5. GoldenGate抽取Informix数据库安装及配置

    GoldenGate抽取Informix数据库安装及配置 本次测试架构 l  在中间机上安装informix csdk4.10版本,并编译配置unixODBC; l  在中间机上安装ogg for I ...

  6. oracle查询所有初始化参数(含隐含参数)

    年龄大了,感觉记性不是很好了,还是重新做笔记了.最近在整理些稿子,顺便在记录下oracle查询所有初始化参数(含隐含参数): SELECT i.ksppinm name, i.ksppdesc des ...

  7. oracle隐含参数的查看与修改

    v$parameter视图中查询参数的时候其实都是通过x$ksppi和x$ksppcv这两个内部视图中得到的. 1.   可以通过如下方式查询当前实例的所有隐含参数: col name for a30 ...

  8. 转 rman-08120 以及查询隐含参数

    rman-08120 We need RMAN to automatically purge archivelogs from the FRA once they are applied to the ...

  9. [20191206]隐含参数_db_always_check_system_ts.txt

    [20191206]隐含参数_db_always_check_system_ts.txt --//今年年头我做tab$删除恢复时,遇到的问题,就是遇到延迟块清除的问题.参考链接:http://blog ...

随机推荐

  1. vue中使用lodash

    1.安装:npm i --save lodash 2.引入:import _from 'lodash' 3.使用: <template> <div class="templ ...

  2. C++的string

    string中find()返回值是字母在母串中的位置(下标记录),如果没有找到,返回npos. string的substr(pos=0, count=npos)返回字符串[pos, pos+count ...

  3. Centos7下ups监控apcupsd的使用

    什么是UPS UPS-Uninterrupted Power System:利用电池化学能作为后备能量,在市电断电等电网故障时,不间断地为用户设备提供(交流)电能的一种能量转换装置. UPS的主要功能 ...

  4. box-shadow outline 实现双边框 阴影

    文字阴影 text-shadow box-shadow   格式:text-shadow:x y blur color, … 参数 x        横向偏移 y        纵向偏移 blur  ...

  5. (转)EOS中账户、钱包和密钥的关系

    EOS对于账户的设计与ETH有很大的不同,引入了Account账户, Wallet钱包, 钱包密码, Key公私钥, Permission权限等众多概念,刚入门的时候感觉一头雾水.本文希望通过对这些概 ...

  6. PHP学习路径及练手项目合集

    PHP 技术路径中包含入门知识.PHP 编程基础.PHP Web 框架.项目实战和项目进阶五个模块.模块中的课程将带着你逐步深入,学会如何使用 PHP 实现项目一个博客,聊天室,MVC框架及搜索系统等 ...

  7. Vim的6种基本模式及基本操作

    说明:文章所有内容截选自实验楼教程[Vim编辑器]~ Vim 快速入门 一.实验介绍 1.1 实验内容 本次实验将学习vim中的不同模式和一些基本操作. 1.2 实验知识点 Vim中的六种基本模式 V ...

  8. iOS UI进阶-2.0 CALayer

    在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图 ...

  9. template.js简单入门

    template.js是一款开源的JavaScript模板引擎,用来渲染页面的. github地址 https://github.com/yanhaijing/template.js 下载templa ...

  10. [转帖]unity3D OnTriggerEnter和OnCollisionEnter的一点个人心得(主要讲区别)

    觉得这个讲的挺好的,就转过来了:) 太抽象的理论总是让人眼花缭乱,所以我这里以例证为主. 1,测试OnTriggerEnter和OnCollisionEnter的区别 测试:如果两个物体A,B 两者都 ...