Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2802770
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(389)

分类: Oracle

2011-03-14 12:29:07

ORA-00494导致数据库down机


数据库down机,以下是alter日志中的一段:
Thu May 27 11:56:19 2010
Errors in file /opt/oracle/admin/devpay2/bdump/devpay2_lgwr_17668.trc:
ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 17716'(CF EQ超时)
Thu May 27 11:57:15 2010
Errors in file /opt/oracle/admin/devpay2/bdump/devpay2_arc0_17714.trc:
ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 17716'(CF EQ超时)


CF eq超过900秒,会报ORA-00494,10.2.0.4对ORA-00494引进一种新的处理机制,当出现这个错误时,不管是不是后台进程,只要是阻塞的,都会kill掉。因为cf 锁的一直存在,lgwr因为需要申请cf锁会一直等待,此时active session中有越来越多的log file sync,当cf eq超过900s,报ORA-00494的时候,先kill了ckpt,
然后 lgwr也被kill,ckpt也被 kill掉,再在 11:57:35 将lgwr也kill了。同时在11:57:35 时,实例也crash了。设置_kill_controlfile_enqueue_blocker=false参数,可以不kill掉任何进程。(对于CF eq超过900s也不会处理)
如果在init.ora中设置_kill_enqueue_blocker=1 ,可以阻止kill后台进程,但是仍旧kill非后台的进程。出现这种问题的原因应该去找,为什么CF EQ会超过900s。。

阅读(3432) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~