今天监控一直报等待事件异常,查了下数据库基本都是gc缓冲忙收购等待事件。这个等待事件之前一直没接触过,今天特意了解下。
参考文档:Oracle金属氧化物半导体
<强>一、简要定义强>
该等待事件仅适用于RAC环境,类似于非RAC环境中的“缓冲busy"等待。
当会话正在等待访问另外一个会话正在适用和持有的块且无法共享该块时,会发生这种情况。多个会话可能会排队等待同一个块。
在11.1和更早版本中,这种类型的等待被分为“gc缓冲busy"等待。
从Oracle 11.2开始“gc缓冲busy"等待被分为两个新的等待类别:
-
<李> gc缓冲忙碌获得李>
<李> gc缓冲忙发布李>
gc缓冲忙释放:是在本地实例会话1之前已经有远程实例会话2请求访问了本地实例的相同的缓冲区,并且没有完成,那么本地实例1的会议就是在等待gc释放缓冲区忙。
<强>二,一般原因强>-
<李>高竞争对象的特定热块李>
<李>,等等待“gc块busy"和“询问:TX -行锁争用李>
<李>高网络延迟或网络的问题李>
<李>
繁忙的服务器或活跃的空闲内存分页/交换由于低
李><强>个人等待(用于在全球之声SESSION_WAIT美元中看到的等待)强>
<>以前P1 ,,,,,,,,,,,,,,,, File # P2 ,,,,,,,,,,,,,,,, Block # P3 ,,,,,,,,,,,,,,,, Mode 请求/Mode 举行/block 类 SECONDS_IN_WAIT ,,, Amount of time waited for 从而current 事件 文件号,,,,,,,,,,,,,,却;能够is 从而文件#,of 从而file that Oracle is trying 用read 从。 块#,,,,,,,,,,,,,却;能够is 从而starting block number 拷贝,file 得到where Oracle starts reading 从而块。 blocks ,,,,,,,,,,,,却;能够parameter specifies 从而number of blocks that Oracle is rying 用read 得到,文件#,starting at 块# Inst_id ,,,,,,,,,,, instance 数字 用determine 从而root blocker  for sessions waiting 提醒,gc wait events use 从而below 选项 1. system state dump at  cluster 水平 2只oratop displays 服务员/阻滞剂 3只;v $ wait_chains 还要be used 用find 从而root blocker for sessions that 断开连接;封锁,Troubleshooting Database Contention With v $ wait_chains (Doc ID 1428210.1) 4只Using v hang_info美元,v hang_session_info美元,等等 5只Oracle Hang  Manager (Doc ID 1534591.1) Using 从而above 方式;还要find 我方表示歉意,sessions waiting for specific gc events with their final blockers at instance 水平<强> 强> <强>系统范围等(用于在V $ SYSTEM_EVNET中看到的等待)强>
<>之前如果等待缓冲区花费的时间较长,则需要根据以下内容确定哪个段遭受争用: SELECT inst_id, ,,,,,,sid, ,,,,,,, ,,,,,,wait_class, ,,,,,,P1, ,,,,,,P2, ,,,,,,P3 Mode requested /, Mode held /, block 类, ,,,,,seconds_in_wait 得到才能问session_wait美元 ,WHERE event  LIKE & # 39; gc 缓冲% & # 39;; 从前面的输出中,使用P1和P2中的数据,可以使用以下命令获得相关的对象信息以下查询: SELECT segment_name ,得到dba_extents ,WHERE file_id =,,文件 ,,以及,block 结构;block_id 以及block_id + blocks 作用;1 ,,以及ROWNUM =, 1; <强>三,故障排查强> <强> 1)特定热块的争用较高强> 这是由于大量并发插入导致过多的索引块拆分或带有从序列生成的键的右增长索引。 缓冲忙会频繁伴随着这一点。如果问题仍然存在,可以使用 <强>系统范围等(用于在V $ SYSTEM_EVNET中看到的等待)说明强>寻找热块。或者从问题时期的心田报告的