Oracle 11.2.0.1.0
问题:
Errors in file /u01/app/oracle/diag/rdbms/oradb/oradb1/trace/oradb1_cjq0_532518.trc (incident=284542):~ORA-00445: background process "J001" did not start after 120 seconds
参考文档:
Symptoms Changes Cause Solution
Applies to:
Oracle Server -Enterprise Edition - Version 11.2.0.1 to 11.2.0.3 [Release 11.2]
IBM: Linux onSystem z
Symptoms
Random errors aresee in the alert log relating to spawning of processes such as:
ORA-00445:background process "m001" did not start after 120 seconds
Incident detailsin: /opt/u01/app/oracle/diag/rdbms/incident/incdir_3721/db1_mmon_7417_i3721.trc
ERROR: Unable tonormalize symbol name for the following short stack (at offset 2):
Tue Jun 2103:03:06 2011
ORA-00445:background process "J003" did not start after 120 seconds
or
Waited for processW002 to initialize for 60 seconds
The system appearsto be running very slowly and defunct processes can appear.
Changes
REDHAT 5 kernel2.6.18-194.el5 #1 SMP Tue Mar 16
Oracle 11.2.0.2Single Instance
IBM: Linux onSystem z
Cause
Recent linuxkernels have a feature called Address Space Layout Randomization (ASLR).
ASLR is a feature that is activated by default onsome of the newer linux distributions.
It is designed toload shared memory objects in random addresses.
In Oracle, multipleprocesses map a shared memory object at the same address across the processes.
With ASLR turnedon Oracle cannot guarantee the availability of this shared memory address.
This conflict inthe address space means that a process trying to attach a shared memory objectto a specific address may not be able to do so, resulting in a failure in shmatsubroutine.
However, onsubsequent retry (using a new process) the shared memory attachment may work.
The result is arandom set of failures
Solution
It should be notedthat this problem has only been positively diagnosed in Redhat 5 and Oracle11.2.0.2.
It is also likely,as per unpublished BUG:8527473, thatthis issue will reproduce running on Generic Linux platforms running any Oracle 11.2.0.x. on Redhat/OEL kernelswhich have ASLR.
ASLR also existsin SLES10 and SLES 11 kernels and by default ASLR is turned on, however, todate not problem has been seen on SuSE.
You can verifywhether ASLR is being used as follows:
# /sbin/sysctl -a | grep randomize
kernel.randomize_va_space= 1
If the parameteris set to any value other than 0 then ASLR is in use.
On Redhat 5 topermanently disable ASLR.
add/modify thisparameter in /etc/sysctl.conf
kernel.randomize_va_space=0
kernel.exec-shield=0
You need to rebootfor kernel.exec-shield parameter to take effect.
Note that bothkernel parameters are required for ASLR to be switched off.