Friday, June 17, 2011

ORA-00494: enqueue [CF] held for too long

There was a high load at the Linux (RHAS4) due to the backups of three 11.1.0.6 databases going on simultaneously. So much was the load, that server became unresponsive, and then one of the instances crashed with the following error in the alert log file:

Fri Jun 17 02:20:26 2011
System State dumped to trace file

/u01/app/oracle/admin/orcl/bdump/orcl_lgwr_1.trc
Killing enqueue blocker (pid=191) on resource

CF-00000000-00000000 by killing session 56.1

Found a metalink note: ID 779552.1


This note states about kill blocker interface, a mechanism through which Oracle kills any blocking process during high loads. If that blocking process is background process, then the instances crashes too. Oracle prefers crashing the instance, instead of a hang situation. This behavior can be override in two ways. Both ways take help of hidden parameters. In one case, kill blocker interface can be disabled altogether and in the other case, kill blocker interface can be prevented from killing background processes.

So at the time of this instance crash, there was very high load at the server due to RMAN backups, and so that is why the kill blocker interface killed the background process and so the instance crashed. 

2 comments:

Asif Momen said...

Isn't it better to instruct Oracle not to kill the instance using hidden parameters and have a good sleep. ;)

Fahd Mirza said...

Yes Asif, thats right :)

More better, I have spread the RMAN jobs, and hoping for best.