Question: At the startup command,
we are facing ORA-00445 error PMON does not start even after 120 sec at the
time of instance starting up. How do I resolve the ORA-00445 error and
docs note that the ORA-00445 error happens when a background process cannot
ORA-00445: background process "string" did not start after string seconds
Cause: The specified process did not start after the specified time.
Action: Ensure that the background did not die and leave a trace file.
You start troubleshooting an
ORA-00445 error by examining your alert log and check for trace files in the
bdump (background_dump_dest) directory.
I have seen the ORA-00445
because the OS is still holding the SGA RAM after a previous crash.
First, run an “ipcs –pmb”
command and see if you have leftover RAM segments from the last instance.
If you find held RAM, run the ipcrm command to remove the segments.
Here is how to
check for held SGA RAM on the OS.
If PMON fails on startup,
it’s almost always because of one of these conditions:
Leftover memory segments
from a previous instance crash.
parameter settings in SQL*Plus ($ORACLE_HOME, $ORACLE_SID).
Permission issues with
the Oracle executables.
Not enough CPU/RAM
resources for the startup to complete.
In any case, the associated
trace file will give you the exact reason for the ORA-00445 error.
This may be a Linux kernel issue
and it can also be unpublished bug (8527473( see
MOSC for details)
- Recent Linux kernels have a feature called Address Space Layout
- ASLR is a feature that is activated by default on some of the
newer Linux distributions.
- ASLR is designed to load shared memory objects in random
- In Oracle, multiple processes map a shared memory object at
the same address across the processes.
- With ASLR turned on, Oracle cannot guarantee the availability
of this shared memory address.
This conflict in the address space means that a process trying to attach
a shared memory object to a specific address may not be able to do so,
resulting in a failure in shmat subroutine.
subsequent retry (using a new process) the shared memory attachment may
work. The result is a “random” set of failures in the alert log.
One solution to the ORA-00445 error:
* It should be
noted that this problem has only been positively diagnosed in Redhat 5 and
* It is also likely, as per unpublished BUG:8527473,
that this issue will reproduce running on Generic Linux platforms running
any Oracle 11.2.0.x. or 12.1.0.x on Redhat/OEL kernels which have ASLR.
* This issue has been seen in both Single Instance and RAC environments.
You can verify whether ASLR is being used as follows:
# /sbin/sysctl -a | grep randomize
kernel.randomize_va_space = 1
If the parameter is set to any value other than 0 then ASLR is in use.
On Redhat 5 to permanently disable ASLR. Add/modify this parameter in /etc/sysctl.conf
You need to reboot for
kernel.exec-shield parameter to take effect. Note that both kernel
parameters are required for ASLR to be switched off.
There may be
other reasons for a process failing to start, however, by switching ASLR
off, you can quickly discount ASLR being the problem. More and more issues
are being identified when ASLR is in operation.
Get Complete Oracle Tuning Details
The landmark book
Tuning: The Definitive Reference Third Edition" has been
updated with over 800 pages of expert performance tuning tips.
It's packed with scripts and tools to hypercharge Oracle performance and you can
buy it for 40% off directly from the publisher.