在告警日志中发现了ORA-600(5351)错误,同时出现大量的There are 3 memory allocation errors for object-level stat错误。
详细的错误信息为:
Tue Jun 22 12:00:09 2010 Thread 1 advanced TO log SEQUENCE 1522 CURRENT log# 3 seq# 1522 mem# 0: /dev/rredo03 There are 6 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 4 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 3 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 26 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 9 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 3 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 2 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 3 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 3 memory allocation errors FOR object-level stat IN the LAST 15 minutes Tue Jun 22 16:14:21 2010 Errors IN file /oracle/admin/ruledb/udump/ruledb_ora_233726.trc: ORA-00600: internal error code, arguments: [5351], [4365070], [57664], [], [], [], [], [] Tue Jun 22 16:14:44 2010 Doing block recovery FOR file 201 block 170765 No block recovery was needed There are 658 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 362 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 16 memory allocation errors FOR object-level stat IN the LAST 15 minutes There are 4 memory allocation errors FOR object-level stat IN the LAST 15 minutes Tue Jun 22 17:43:01 2010 ALTER SYSTEM SET db_cache_size='2100M' SCOPE=BOTH; Tue Jun 22 17:43:17 2010 ALTER SYSTEM SET shared_pool_size='712M' SCOPE=BOTH; |
在MOS中查询了一下ORA-600(5351),只差到一篇文章,基本上和当前的问题没有什么关系。不过除了这个明显的ORA-600错误外,大量的memory allocation errors for object-level错误信息也值得关注,查询发现问题和数据库共享池使用有关,如果频繁出现这个错误,最终可能导致ORA-4031错误。
Oracle在文档Memory Allocation Errors For Object-Level Stat Appearing in the Alert Log File [ID 757895.1]中描述了这个问题,而给出的解决方法是增大共享池或者设置隐含参数_OBJECT_STATISTICS=FALSE。
当前的数据库shared_pool的设置是500M左右,调整到712M后,无论是memory allocation errors还是ORA-600(5351)错误,都没有再重现。