AWR报告中Top 10 Foreground Events存在”reliable message”等待事件的处理办法
操作系统版本:HP-UNIX B.11.31
数据库版本:11.2.0.4 RAC
(一) 问题概要
(1)在AWR报告的Top 10 Foreground Events中发现reliable message占用了较高的DB Time,如下:
Top 10 Foreground Events by Total Wait Time
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Total Wait % DB
Event Waits Time Avg(ms) time Wait Class
------------------------------ ------------ ---- ------- ------ ----------
reliable message 34,293,326 1430 42 64.1 Other
DB CPU 265 11.9
enq: TX - row lock contention 2,556,859 114K 45 5.1 Application
PX Deq: Signal ACK RSG 102,595 101K 985 4.5 Other
log file sync 6,458,803 86.5 13 3.9 Commit
cursor: pin S wait on X 184,770 34.8 189 1.6 Concurrent
(2)result cache被使用
SQL> show parameter result_cache_max_size NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ result_cache_max_size big integer 5248K
(3)查询给gv$chanel_waits显示高等待的组件
SELECT CHANNEL, SUM(WAIT_COUNT) SUM_WAIT_COUNT FROM GV$CHANNEL_WAITS GROUP BY CHANNEL ORDER BY SUM(WAIT_COUNT) DESC; CHANNEL Wait Count ------------------------------------------------------ -------------- Result Cache: Channel 307718423 kxfp control signal channel 97080 RBR Channel 60807 MMON remote action broadcast channel 28256 obj broadcast Channel 14736 kill job broadcast - broadcast channel 367 parameters to cluster db instances - broadcast channel 15 Broker IQ Result 5 service operations - broadcast channel 4 quiesce Channel 2
(二)原因
如果满足上面的3个条件,那么可以确定该等待事件由result cache处理相关的bug_19557279造成,该问题在Oracle 12.2版本中修复。
(三)解决方案
在11G中如何解决,Oracle提供了3种方案:
1.更新数据库版本到12cR2;
2.应用补丁18416368;
3.禁用结果缓存,需要重启数据库实例生效
SQL> alter system set result_cache_max_size=0;
参考文档:MOS上文档ID :1951729.1
【完】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?