‘gc buffer busy acquire‘和‘gc buffer busy release‘原理及案例

昨天正式环境上出现数据库CPU 100%的问题,数据库是128个CPU,128G内存,power系列,非常强劲,十几万的逻辑读只需要1s。
出现问题之后,调整两条负载最高的两条SQL,问题解决,但有两个cluster类别的等待事件第一次见,在metlink中找了一篇文章:

gc buffer busy:--Gc缓冲区忙
gc buffer busy acquire: --Gc缓冲区获取忙
gc buffer busy release: --Gc缓冲区繁释放忙


--共享:RAC等待事件:gc buffer busy acquire

--概述
gc buffer busy是RAC数据库中常见的等待事件.

//11g开始:gc buffer busy 分为:
'gc buffer busy acquire' 和'gc buffer busy release':

--gc buffer busy acquire:
是当session#1尝试请求访问远程实例(remote  instance) buffer,但是在session#1之前已经有相同实例上另外一个session#2请求访问了相同的buffer,并且没有完成,那么session#1等待gc buffer busy acquire。

--gc buffer busy release:
是在session#1之前已经有远程实例的session#2请求访问了相同的buffer,并且没有完成,那么session#1等待gc buffer busy release。


--区别:原因/解决方法
---------------------
--1).热点块(hot block)
在AWR中 Segments by Global Cache Buffer Busy 记录了访问频繁的gc buffer.

--解决方法:
可以根据热点块的类型采取不同的解决方法,比如采取分区表,分区索引,反向index等等.--这点与单机数据库中的buffer busy waits类似.


--2).低效SQL语句
低效SQL语句会导致不必要的buffer被请求访问,增加了buffer busy的机会,在AWR中可以找到TOP SQL.

--解决方法:
可以优化SQL语句减少buffer访问。--这点与单机数据库中的buffer busy waits类似。


--3).数据交叉访问
RAC数据库,同一数据在不同数据库实例上被请求访问。

--解决方法:
如果应用程序可以实现,那么我们建议不同的应用功能/模块数据分布在不同的数据库实例上被访问,避免同一数据被多个实例交叉访问,可以减少buffer的争用,避免gc等待。


--4).Oracle bug
建议安装Oracle推荐的最新Patch Set和PSU。
Patch set和PSU信息请参考:Oracle Recommended Patches -- Oracle Database (Doc ID 756671.1)


当时数据库的负载,已经有几千个session堵塞了。
 

相关推荐

  1. 探索sklearn中SVM模型的原理使用案例

    2024-01-09 19:24:05       36 阅读
  2. 线程池的运行原理使用案例

    2024-01-09 19:24:05       40 阅读
  3. 负载均衡原理负载均衡算法代码案例

    2024-01-09 19:24:05       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-09 19:24:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-09 19:24:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-09 19:24:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-09 19:24:05       18 阅读

热门阅读

  1. 【MySQL】ANY函数 的巧用(筛选字段 = ANY(语句))

    2024-01-09 19:24:05       38 阅读
  2. 逆流而上-摘抄句子

    2024-01-09 19:24:05       36 阅读
  3. Git命令 本地-远程 简洁步骤

    2024-01-09 19:24:05       31 阅读
  4. React-路由进阶

    2024-01-09 19:24:05       33 阅读
  5. 智能寻迹避障清障机器人设计(摘 要)

    2024-01-09 19:24:05       40 阅读
  6. 布隆过滤器的原理

    2024-01-09 19:24:05       24 阅读
  7. 编程笔记 html5&css&js 025 HTML输入类型(1/2)

    2024-01-09 19:24:05       36 阅读
  8. Qt隐式共享浅析

    2024-01-09 19:24:05       34 阅读