Oracle启用“_optimizer_skip_scan_enabled” 参数导致NC系统卡死问题解决方法
问题现象
客户反映系统卡顿,很多操作耗时都比较长,通过nmc监控,线程耗时主要集中在数据库上。
问题分析
首先监控数据库服务器资源使用情况,CPU、内存使用正常,没有达到峰值。
监控磁盘IO情况,发现磁盘最长活动时间持续达到100%,说明系统磁盘io负载较高。
生成卡顿时段awr报告1:
可以看到2小时的awr报告DB Time达到7805mins,非常高。
用户IO为主要等待时间,占比57%。
进一步查看数据库参数配置。
select * from v$parameter order by name
96G内存的数据库服务器,oracle最大内存只分配了6.7G,调整数据库内存参数。
alter system set memory_max_target=66560M scope=spfile;
alter system set memory_target=66560M scope=spfile;
alter system set sga_max_size=66560M scope=spfile;
调整后业务依然很慢,nmc监控仍然在数据库端,再次生成一个卡顿时段的awr报告。
可以看到1小时的awr报告DB Time达到2739mins,依然很高。
等待事件不再是IO,而是latch free。
查看数据库上事件为latch free的会话,发现闩锁ID为559。
select * from v$session_wait where event like 'latch free' ;
查看559对应的latch name,为Result Cache: RC Latch。
select * from v$latchname where latch#=559;
解决方案
通过oracle官方支持网站mos查询问题,发现跟oracle12c新特性有关。
可通过如下隐含参数解决:
alter system set "_optimizer_skip_scan_enabled"=FALSE scope=spfile;
修改后系统正常。
到此这篇关于Oracle启用“_optimizer_skip_scan_enabled” 参数导致NC系统卡死问题的文章就介绍到这了,更多相关Oracle NC系统卡死内容请搜索编程网(www.lsjlt.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.lsjlt.com)!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341