广告
返回顶部
首页 > 资讯 > 数据库 >常见的global cache等待事件
  • 163
分享到

常见的global cache等待事件

2024-04-02 19:04:59 163人浏览 泡泡鱼
摘要

gc cr disk read事件当node 1需要读取的block在node 2的buffer cache里,且block中包含尚未提交的事务,那么node 2的LMS进程需要使用undo record将

gc cr disk read事件

node 1需要读取的block在node 2的buffer cache里,且block中包含尚未提交的事务,那么node 2的LMS进程需要使用undo record将该block回滚至node 1发起那一时刻的内容后再传给node 1,假如这时undo record所在的undo block不在node 2的buffer cache里,node 1上就会出现GC cr disk read事件,表示node 1正等待node 2的LMS授予其直接从磁盘读取undo block的权限。


gc current block 2-way

node 1、node 2的buffer cache里都没有block A,这时node 1读取了某个block A里的某一行,随后node 2也读取了block A或者对block A里的某一行作了DML操作,这两种情况下node 2上都会出现"gc current block 2-way"等待,current在这里表示node 2读取或修改的block版本是最新的,该block里不存在未提交的事务。值得注意的是在"gc current block 2-way"事件发生之后,GRD里会为该block上KJUSERPR(读操作)或者KJUSEREX(写操作)


gc cr block 2-way

细分一下有两种情况

(1)、node 1修改了记录但没有提交:

node 1、node 2的buffer cache里都没有block A,这时node 1修改了block A里的某一行,但没有提交;随后node 2执行了Select block A操作,按照一致性读的定义,node 2此时应该收到block A在select发起那一时刻所对应的快照block A',block A'将由node 1上的LMS进程以应用undo record到block A的方式构造出来后传给node 2,此时在node 2上就发生了一次"gc cr block 2-way"等待事件,node 2接收到的block A'在buffer cache中标记为cr类型,cr类的block仅满足当次查询的需要,无法被之后的查询所重用,也就是说假如node 2仅接着又发起一次对于block A的select操作,node 1上的LMS进程还是会重新构造出一个block A''后传递给node 2,尽管block A''与block A'的内容是完全一样的。这一特性决定了cr block在构造及传输的过程中在GRD里不需要任何的锁来保护。


(2)、node 1修改了记录且已经提交:

node 1、node 2的buffer cache里都没有block A,这时node 1修改了block A里的某一行,并且已经提交。因为_fairness_threshold参数的作用,当node 2执行了Select block A操作,仍然有可能触发node 1上的LMS进程构造cr block然后传输给node 2的动作,node 2就会遇到gc cr block 2-way等待。


值得一提的是不管是gc cr block 2-way还是gc current block 2-way,它们的出现并不意味着RAC的性能出现了问题,可以认为这是消息类的等待事件,仅仅表示两节点间存在block的传输,但如果在AWR里发现这两种等待事件平均耗时较长(>10ms),就可以认为网络上存在瓶颈,需要联系网络管理员介入处理


gc current block busy

node 1正在更新block A的时候node 2也发起了对block A的更新,这时node 2在等待接收node 1上的LMS进程构造出block A在node 2发起更新时刻的block映像,node 2在接收到block A映像之前,就会处于gc current block busy状态


gc cr block busy

当node 1正在更新block A的时候,node 2发起了对block A的查询,这时node 2在等待接收node 1上的LMS进程构造出block A在node 2发起查询时刻的block映像,node 2在接收到block A映像之前,就会处于gc cr block busy状态


gc buffer busy acquire

实例1和实例2的buffer cache都含有某个block,T1时刻实例1修改了这个block,T2时刻实例2上的会话1读取这个block,当这个读取还没有完成,实例2上的会话2也发起了读取相同block的操作,这时会话2就会等在gc buffer busy acquire上。实例2同时发起的读取相同block的会话数越多,我们就越容易观察到gc buffer busy acquire等待。


gc buffer busy release

在session#1尝试请求访问本地实例buffer时,发现之前已经有远程实例的session#2请求访问该buffer,并且没有完成,那么session#1等待gc buffer busy release。


整理自:

那些你眼熟的global cache等待事件是如何被触发的(一) 

Http://blog.itpub.net/53956/viewspace-2125576/

您可能感兴趣的文档:

--结束END--

本文标题: 常见的global cache等待事件

本文链接: https://www.lsjlt.com/news/50178.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 常见的global cache等待事件
    gc cr disk read事件当node 1需要读取的block在node 2的buffer cache里,且block中包含尚未提交的事务,那么node 2的LMS进程需要使用undo record将...
    99+
    2022-10-18
  • latch:library cache lock等待事件
    latch:library cache lock等待事件 This event controls the concurrency between clients of the libr...
    99+
    2022-10-18
  • ORACLE常见等待事件有哪些
    这篇文章主要介绍“ORACLE常见等待事件有哪些”,在日常操作中,相信很多人在ORACLE常见等待事件有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ORACLE常见等待...
    99+
    2022-10-19
  • oracle常见的等待事件有哪些
    本篇文章给大家分享的是有关oracle常见的等待事件有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 1. Buffer busy wa...
    99+
    2022-10-19
  • Library cache结构与Library cache lock、Library cache pin等待事件
    一、Library cache 结构 1.DSI中对Library Cache的说明: (1)An area in the shared pool that manages inform...
    99+
    2022-10-18
  • 如何进行Oracle常见的等待事件分析
    如何进行Oracle常见的等待事件分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.Library cache pin这个...
    99+
    2022-10-19
  • 怎么理解数据库中的row cache lock等待事件
    这篇文章主要介绍“怎么理解数据库中的row cache lock等待事件”,在日常操作中,相信很多人在怎么理解数据库中的row cache lock等待事件问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2022-10-18
  • 如何理解Oracle数据库并行操作常见等待事件及脚本
    这篇文章给大家介绍如何理解Oracle数据库并行操作常见等待事件及脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。小编主要介绍Oracle数据库在并行操作过程中 slave 进程和 ...
    99+
    2022-10-19
  • [20191125]探究等待事件的本源.txt
    [20191125]探究等待事件的本源.txt--//当工作中遇到oracle的性能问题时,查看awr报表提供很好的解决问题途径.但是有时候很容易想当然.--//比如以前我一看到 log file sync等待事件就很主观的认为redo 磁...
    99+
    2015-01-03
    [20191125]探究等待事件的本源.txt
  • oracle等待事件类型wait_class的分析
    oracle等待事件类型wait_class的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 Oracle 的...
    99+
    2022-10-19
  • 如何解决当删除oracle数据库user时发生row cache lock等待事件
    这篇文章主要介绍了如何解决当删除oracle数据库user时发生row cache lock等待事件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解...
    99+
    2022-10-18
  • [20191126]探究等待事件的本源2.txt
    [20191126]探究等待事件的本源2.txt--//做一个测试,验证如果写入控制文件慢也会影响提交性能.1.环境:SCOTT@book> @ ver1PORT_STRING                    VERSION     ...
    99+
    2021-08-15
    [20191126]探究等待事件的本源2.txt
  • [20191127]探究等待事件的本源4.txt
    [20191127]探究等待事件的本源4.txt--//昨天使用ash_wait_chains.sql脚本把各个生产库执行1遍,才发现我对一套系统性能理解错误.--//我一直以为这套系统存储有点问题,性能不是很好.1.环境:xxxxxx> ...
    99+
    2015-05-06
    [20191127]探究等待事件的本源4.txt
  • ORACLE的buffer busy wait等待事件怎么解决
    本文小编为大家详细介绍“ORACLE的buffer busy wait等待事件怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“ORACLE的buffer busy wait等待事件怎么解决”文章能帮...
    99+
    2022-10-19
  • Oracle的SQL*Net more data from client 等待事件分析
    SQL*Net more data from client 并非一个常见的等待事件,但在有些场景下却是经常能看到的,这些场景包括: 批量插入、更新、删除(array of insert、upda...
    99+
    2022-10-18
  • MySQL未提交事务造成的等待事件怎么解决
    本篇内容主要讲解“MySQL未提交事务造成的等待事件怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL未提交事务造成的等待事件怎么解决”吧! ...
    99+
    2022-10-19
  • Oracle 11.2.0.3数据库CJQ进程造成row cache lock等待事件影响job无法停止怎么办
    小编给大家分享一下Oracle 11.2.0.3数据库CJQ进程造成row cache lock等待事件影响job无法停止怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! ...
    99+
    2022-10-19
  • 数据库的等待事件什么时候会出现
    这篇文章主要介绍“数据库的等待事件什么时候会出现”,在日常操作中,相信很多人在数据库的等待事件什么时候会出现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库的等待事件什么...
    99+
    2022-10-19
  • 数据库I/O上的等待事件怎么理解
    这篇文章主要讲解了“数据库I/O上的等待事件怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库I/O上的等待事件怎么理解”吧!SQL> se...
    99+
    2022-10-19
  • 数据库的等待事件TX-row lock contention怎么解决
    本篇内容主要讲解“数据库的等待事件TX-row lock contention怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库的等待事件TX-row...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作