生成SPA报告报ORA-27163: out of memory

前一段时间做SPA测试,我们的环境是11.2.0.4.2,在做完前面的分析操作之后,生成SPA报告出错。报out of memory。错误日志如下:

set trimspool on 
set trim on 
set pages 0 
set linesize 1000 
set long 20000000000 
set longchunksize 10000000000 

spool spa_report_elapsed_time.html 
SELECT dbms_sqlpa.report_analysis_task('SPA_TEST', 'HTML', 'ALL','ALL', top_sql=>300,execution_name=>'Compare_elapsed_time') FROM dual; 
spool off; 

ERROR: 
ORA-27163: out of memory 
ORA-06512: at "SYS.DBMS_SQLTUNE_INTERNAL", line 8211 
ORA-06512: at "SYS.DBMS_SQLPA", line 515 
ORA-06512: at line 1 

出现这种内部的问题,只好抱着在MOS上搜一搜的态度。同时我也开了SR。很快SR就回复了,同时我也搜到了一篇文档叫XML Parser Fails With ORA-27163 (Out Of Memory) (文档 ID 1599434.1)。SR回复的方法和我搜索到的解决办法都是一样的,需要设置event 31156。这个可以直接在session级别进行设置,设置完成之后,再次生成SPA报告没有报错。

ALTER SESSION SET EVENTS '31156 trace name context forever, level 0x400';

很奇怪的一点是,文档说11.2.0.3存在这个问题,但是11.2.0.4已经不存在这个问题了,但是我确还是遇到了这个问题。同时SR这边指出是Bug 12685875 : ORA-27163 OUT OF MEMORY WHEN EXECUTING DBMS_SQLPA.REPORT_ANALYSIS_TASK。这个bug没有写workground。不过我通过上面的事件是可以解决的。

参考文档:XML Parser Fails With ORA-27163 (Out Of Memory) (文档 ID 1599434.1)

Bug 12685875 : ORA-27163 OUT OF MEMORY WHEN EXECUTING DBMS_SQLPA.REPORT_ANALYSIS_TASK

分享到: 更多