ASM实例出现ORA-4031错误导致实例崩溃

数据库的ASM实例出现了ORA-4031错误,导致了数据库实例的崩溃。
详细的错误信息为:

Wed Jul 25 08:03:45 2012
Errors IN file /u01/app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_asmb_34668994.trc (incident=808023):
ORA-04031: unable TO allocate 3432 bytes OF shared memory ("shared pool","unknown object","sga heap(1,0)","ASM file")
Incident details IN: /u01/app/oracle/diag/rdbms/orcl/ORCL1/incident/incdir_808023/ORCL1_asmb_34668994_i808023.trc
Wed Jul 25 08:03:47 2012
Trace dumping IS performing id=[cdmp_20120725080347]
Errors IN file /u01/app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_asmb_34668994.trc:
ORA-15064: communication failure WITH ASM instance
ORA-04031: unable TO allocate 3432 bytes OF shared memory ("shared pool","unknown object","sga heap(1,0)","ASM file")
ASMB (ospid: 34668994): terminating the instance due TO error 15064
Wed Jul 25 08:03:47 2012
ORA-1092 : opiodr aborting process UNKNOWN ospid (29819058_1)
Wed Jul 25 08:03:48 2012
Errors IN file /u01/app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_q002_25886884.trc:
ORA-15064: communication failure WITH ASM instance
Wed Jul 25 08:03:47 2012
Errors IN file /u01/app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_arc3_36503776.trc:
ORA-15064: communication failure WITH ASM instance
Wed Jul 25 08:03:47 2012
Errors IN file /u01/app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_q001_32374808.trc:
ORA-15064: communication failure WITH ASM instance
Errors IN file /u01/app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_arc3_36503776.trc:
ORA-15064: communication failure WITH ASM instance
Master archival failure: 15064
Wed Jul 25 08:03:48 2012
ORA-1092 : opiodr aborting process UNKNOWN ospid (12058986_1)
Wed Jul 25 08:03:49 2012
ORA-1092 : opitsk aborting process
Wed Jul 25 08:03:49 2012
License high water mark = 334
Instance TERMINATED BY ASMB, pid = 34668994
USER (ospid: 35914002): terminating the instance
Instance TERMINATED BY USER, pid = 35914002

显然数据库实例的出现的崩溃是由于ASM实例的错误导致的。根据Oracle的推荐,在11g中使用MEMORY_TARGET参数的话,那么MEMORY_TARGET至少应该分配256M以上,而且随着DISK GROUP的容量的增长,SHARED_POOL所需要的空间也随着增加。因此对于磁盘组空间比较大的ASM实例而言,采用默认参数作为MEMORY_TARGET显然是不够的。
对于当前环境,只需要简单的调整ASM实例的MEMORY_TARGET参数,将其扩大到500M以上,就可以避免该错误的产生。

This entry was posted in BUG and tagged , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *