ORA-00494 enqueue [CF] held for too long tips
Question: I am getting an ORA-00494 error and the trace file. This error causes my database to crash:.
ORA-00494: enqueue [CF] held for too long
/u01/app/oracle/admin/mysid/bdump/ora_lgwr_143.trc
Killing enqueue blocker (pid=152) on resource
CF-00000000-00000000 by killing session 83.0
/u01/app/oracle/admin/mysid/bdump/ora_lgwr_143.trc
Killing enqueue blocker (pid=152) on resource
CF-00000000-00000000 by killing session 83.0
What is the cure for this ORA-00494 error?
Answer: The oerr utility shows this on the ORA-00494
Answer: The oerr utility shows this on the ORA-00494
ORA-00494: enqueue string held for too long (more than string seconds) by 'inst string, osid string'
Cause: The specified process did not release the enqueue within the maximum allowed time.
Action: Reissue any commands that failed and contact Oracle Support Services with the incident information.
Cause: The specified process did not release the enqueue within the maximum allowed time.
Action: Reissue any commands that failed and contact Oracle Support Services with the incident information.
The ORA-00494 error occurs during periods of super-high stress, activity to the point there the server becomes unresponsive due to overloaded disk I/O, CPU or RAM.
- See MOSC Note ID 779552.1 "ORA-00494 During High Load After 10.2.0.4 Upgrade" says that Oracle kills blocking processes during periods of high DML load and issues the ORA-00494 error. In your case, it is the log writer process.
- Also see Database Crashes With ORA-00494 [MOSC Note ID 753290.1
Solutions for ORA-00494:
- Resize online redo logs
- Spread-out the DML over longer periods
- Adjust several hidden parameters:
Two Oracle database hidden parameters can be reconfigured to prevent further incident happens by the same cause – Oracle Kill Blocker Interface mechanism:
1) _kill_controlfile_enqueue_blocker = { TRUE | FALSE }
- TRUE. Default value. Enables this mechanism and kills blocker process in CF enqueue.
- FALSE. Disables this mechanism and no blocker process in CF enqueue will be killed.
2) _kill_enqueue_blocker = { 0 | 1 | 2 | 3 }
- 0. Disables this mechanism and no foreground or background blocker process in enqueue will be killed.
- 1. Enables this mechanism and only kills foreground blocker process in enqueue while background process is not affected.
- 2. Enables this mechanism and only kills background blocker process in enqueue.
- 3. Default value. Enables this mechanism and kills blocker processes in enqueue.
3) _controlfile_enqueue_timeout = { INTEGER }
- 900. Default value.
- 1800. Optimum value to prevent enqueue timeout.
No comments:
Post a Comment