ORA-600(1433)错误

第一次碰到11.2版本的数据库崩溃,在alert文件中找到了这个错误信息。

 

 

这是一个测试数据库,版本为11.2.0.1 for Linux X86-64

数据库本来一直运行的很正常,但是由于我测试INTERVAL分区,使得每插入一条记录就产生一个新的分区,导致了大量的后台递归调用,最终导致SGA内存全部花费给共享池后,仍然出现内存不足的问题,出现这个问题后,利用ALTER SYSTEM FLUSH SHARED_POOL语句清空了SHARED_POOL,随后没有再进行额外的操作。

因此数据库alert文件中包含大量的ORA-4031错误:

Sun Mar 21 01:37:58 2010
Errors in file /data/oracle/diag/rdbms/test112/test112/trace/test112_smon_4309.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","PCUR^f185eace","kglob")
Sun Mar 21 01:38:14 2010
Errors in file /data/oracle/diag/rdbms/test112/test112/trace/test112_smon_4309.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","PCUR^f185eace","kglob")
Sun Mar 21 01:38:21 2010
DDE: Problem Key 'ORA 4031' was completely flood controlled (0x6)
Further messages for this problem key will be suppressed for up to 10 minutes
Sun Mar 21 01:38:29 2010
Errors in file /data/oracle/diag/rdbms/test112/test112/trace/test112_smon_4309.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","PCUR^f185eace","kglob")
Sun Mar 21 01:38:44 2010
Errors in file /data/oracle/diag/rdbms/test112/test112/trace/test112_smon_4309.trc:
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","COL_USAGE$","CCUR^9a05b67a","kglob")
Tue Mar 23 00:35:09 2010
Thread 1 advanced to log sequence 42 (LGWR switch)
  Current log# 3 seq# 42 mem# 0: /data/oradata/test112/redo03.log
Wed Mar 24 01:43:05 2010
Errors in file /data/oracle/diag/rdbms/test112/test112/trace/test112_dbw0_4301.trc  (incident=10907):
ORA-00600: internal error code, arguments: [1433], [60], [], [], [], [], [], [], [], [], [], []
Incident details in: /data/oracle/diag/rdbms/test112/test112/incident/incdir_10907/test112_dbw0_4301_i10907.trc
Wed Mar 24 01:43:05 2010
Errors in file /data/oracle/diag/rdbms/test112/test112/trace/test112_cjq0_4378.trc:
ORA-04031: (error message truncated) ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","unknown object","PCUR^7829c47a","kksfbc:hash1")
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","CCUR^7829c47a","kglob")
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknow
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","CCUR^7829c47a","kglob")
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","CCUR^7829c47a","kglob")
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","PCUR^7829c47a","kglob")
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","PCUR^caf08d1e","kglob")
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","PCUR^caf08d1e","kglob")
ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","PCUR^7829c4
Wed Mar 24 01:43:08 2010
Trace dumping is performing id=[cdmp_20100324014308]
Errors in file /data/oracle/diag/rdbms/test112/test112/trace/test112_dbw0_4301.trc:
ORA-00600: internal error code, arguments: [1433], [60], [], [], [], [], [], [], [], [], [], []
DBW0 (ospid: 4301): terminating the instance due to error 471
Instance terminated by DBW0, pid = 4301

显而易见,导致实例崩溃的原因就是ORA-600(1433)错误,由于出现了这个错误,导致后台dbw0进程中止了实例,这也就是error 471的由来:

ORA-00471: DBWR process terminated with error
Cause: The database writer process died
Action: Warm start instance

其他详细的trace文件这里就不贴出来了,基本上都是出现问题时,系统的状态信息的DUMP

查询了一下metalink,发现ORA-600(1433)错误导致实例崩溃由来已久,在文档ID 285991.1中对这个问题进行了描述。

这篇文档描述的版本是从8.1.7.410,不过同样的问题应该也使用11.2的情况,无论是现象还是原因基本上都和这篇文档描述的相符。

简单的说,Oracle的内部消息无法在消息队列中找到空闲的缓存时,会引发这个错误。而前面出现了大量的ORA-4031错误,正好验证了这一点。

由于在11g中部署了MEMORY_TARGET初始化参数,因此OracleSGAOracle自动调整,由于测试的操作需要大量的内存,在出现ORA-4031错误后发现,SGA90%以上的空间已经都分配给了共享池,而此时仍然不断的报错ORA-4031,共享池空间不去,那么显然很可能导致Oracle内部消息也无法找到空闲的缓冲,从而引发了这个问题。

虽然导致实例崩溃的是ORA-600(1433)错误,但是问题实际上还是由于ORA-4031错误所引发的。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-630525/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-630525/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值