RAC等待事件:gc缓冲忙于收购

  今天监控一直报等待事件异常,查了下数据库基本都是gc缓冲忙收购等待事件。这个等待事件之前一直没接触过,今天特意了解下。   参考文档:Oracle金属氧化物半导体      <强>一、简要定义   该等待事件仅适用于RAC环境,类似于非RAC环境中的“缓冲busy"等待。   当会话正在等待访问另外一个会话正在适用和持有的块且无法共享该块时,会发生这种情况。多个会话可能会排队等待同一个块。   在11.1和更早版本中,这种类型的等待被分为“gc缓冲busy"等待。   从Oracle 11.2开始“gc缓冲busy"等待被分为两个新的等待类别:      
      <李> gc缓冲忙碌获得李   <李> gc缓冲忙发布
  gc缓冲忙收购:是当会话1尝试请求访问远程实例(远程实例)的缓冲区,但是会话1之前已经有相同实例上的另外一个会话2正在请求访问了相同的缓冲区,并且没有完成,那么会话1就是在等待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中看到的等待)说明寻找热块。或者从问题时期的心田报告的   

RAC等待事件:gc缓冲忙于收购