1、数据库版本
oracle 11.2.0.3.0
2、问题现象
使用ashrpt.sql生成ash报告时,在输入完成起始时间、指定报告文件存放路径与文件名称后,静止无反应。
SQL> @?/rdbms/admin/ashrpt.sql ...... Using the report name /home/oracle/ashrpt_1_0802_1932.html Summary of All User Input ------------------------- Format : HTML DB Id : 2024181297 Inst num : 1 Begin time : 02-Aug-14 19:22:34 End time : 02-Aug-14 19:32:34 Slot width : Default Report targets : 0 Report name : /home/oracle/ashrpt_1_0802_1932.html 停在这里不动了...... |
3、问题分析
3.1、查看ashrpt会话在等待什么
SQL> select sid,program,event from v$session where sid=1590; SID PROGRAM EVENT ----------------------------------------------------------------------------------------------------- 1590 [email protected] (TNS V1-V3) control file sequential read |
待待事件持续为“control filesequential read”
3.2、查看optimizer_mode参数设置值
SQL> show parameter optimizer_mode NAME TYPE VALUE -------------------------------------------------------------------------------------------------- optimizer_mode string FIRST_ROWS_10 |
发现optimizer_mode并非为默认值all_rows,而是被修改成了first_rows_10
3.3 分析初步小结
根据上面等待事件的不正常性,以及optimizer_mode被修改的值相结合,怀疑很有可能是ORACLE的BUG。
4、分析结果验证
在metalink上,查到文章13794366.8 ,确认为ORACLE 11.2.0.2、11.2.0.3上因为设置参数OPTIMIZER_MODE=FIRST_ROWS_N的BUG ,在11.2.0.4上解决。
DescriptionASH reports can take a really long to complete if the optimizer_mode parameter is set to FIRST_ROWS_N Rediscovery Notes ASH reports will take a long time to complete when optimizer_mode parameter is set to FIRST_ROWS_N Workaround None |
5、解决方法
为了不因为修改optimizer_mode参数对系统其它方面造成影响,所以选择在创建ash报告的session级别修改参数值为"all_rows"的方式,达到能成功生成ash报告的目的
SQL> alter session set optimizer_mode=‘all_rows‘; SQL> @?/rdbms/admin/ashrpt.sql ...... <p /> End of Report </body></html> Report written to /home/oracle/ashrpt_1_0802_1932.html |
Ash报告生成成功。
本文作者:黎俊杰(网名:踩点),从事”系统架构、操作系统、存储设备、数据库、中间件、应用程序“六个层面系统性的性能优化工作
欢迎加入 系统性能优化专业群,共同探讨性能优化技术。群号:258187244
ash停止不动无法产生报告问题解决,布布扣,bubuko.com