ORA-00445: Background Process "xxxx" Did Not Start After 120 Seconds

Recent linux kernels have a feature called Address Space Layout Randomization (ASLR).
ASLR  is a feature that is activated by default on some of the newer linux distributions.
It is designed to load shared memory objects in random addresses.
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.

However, on subsequent retry (using a new process) the shared memory attachment may work.
The result is a "random" set of failures in the alert log.

SOLUTION

It should be noted that this problem has only been positively diagnosed in Redhat 5 and Oracle 11.2.0.2. 
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.

ASLR also exists in SLES10 and SLES 11 kernels and by default ASLR is turned on.  To date no problem has been seen on SuSE servers running Oracle  but Novell confirm ASLR may cause problems.  Please refer to

http://www.novell.com/support/kb/doc.php?id=7004855 mmap occasionally infringes on stack

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
kernel.randomize_va_space=0
kernel.exec-shield=0

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.

时间: 2024-08-07 21:01:28

ORA-00445: Background Process "xxxx" Did Not Start After 120 Seconds的相关文章

ORA-00444: background process DBRM failed while starting

SQL> startup 报错:ORA-00444: background process DBRM failed while startingORA-00020:maximum number of processes () exceeded 解决:startup pfile= FILENAME 其中FILENAME为:$ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.052015182150形式的文件例如:startup pfile=/opt/oracle/

ksvcreate: Process(m000) creation failed

一测试服务器数据库(Oracle Database 10g Release 10.2.0.5.0 - 64bit Production)突然访问不了,检查发现数据库处于挂起模式(hang mode),检查告警日志,发现有"ksvcreate: Process(m000) creation failed","kkjcre1p: unable to spawn jobq slave process"之类的错误信息.具体如下所示: Sun Jan 17 09:56:05

ORA-00445 实例挂起

现象: 节点2 运行:select sum(bytes) from dba_segments 长期等待: waiting for 'gc cr request' 节点1 僵死:select sid,serial# from gv$session where username='****' 分析: 数据库内部等待关系: blocking    blocker    event 388         773,397    enq: PV - syncstart 773         397  

select sum(bytes) from dba_segment: waiting for 'gc cr request'

SO: 0x5533efea0, type: 4, owner: 0x554631060, flag: INIT/-/-/0x00 if: 0x3 c: 0x3 proc=0x554631060, name=session, file=ksu.h LINE:12624 ID:, pg=0 (session) sid: 388 ser: 1 trans: 0x0, creator: 0x554631060 flags: (0x51) USR/- flags_idl: (0x1) BSY/-/-/-

Linux 日志报错 xxx blocked for more than 120 seconds

监控作业发现一台服务器(Red Hat Enterprise Linux Server release 5.7)从凌晨1:32开始,有一小段时间无法响应,数据库也连接不上,后面又正常了.早上检查了监听日志,并没有发现错误信息.但是检查告警日志,发现有下面错误信息: Thread 1 advanced to log sequence 19749 (LGWR switch)   Current log# 2 seq# 19749 mem# 0: /u01/oradata/epps/redo02.lo

startup alter.log spfile.ora

SQL> select * from v$version where rownum=1; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production SQL> !cat /etc/issue Enterprise Linux Enterpr

V$session 和V$process

V$SESSION This view lists session information for each current session. Column Datatype Description SADDR RAW(4 | 8) Session address SID NUMBER Session identifier SERIAL# NUMBER Session serial number. Used to uniquely identify a session's objects. Gu

Android 进程生命周期 Process Lifecycle

进程的生命周期 Android系统会尽力保持应用的进程,但是有时为了给新的进程和更重要的进程回收一些内存空间,它会移除一些旧的进程. 为了决定哪些进程留下,哪些进程被杀死,系统根据在进程中在运行的组件及组件的状态,为每一个进程分配了一个优先级等级. 优先级最低的进程首先被杀死. 这个进程重要性的层次结构有五个等级,下面就列出这五种进程,按照重要性来排列,最重要的放在最前. 一.前台进程 Foreground process 前台进程是用户当前做的事所必须的进程,如果满足下面各种情况中的一种,一个

ORA-03135 connections lost contact Process ID:0

场景描述: 领导callme,说pslql远程登录报错,报错信息: 1,赶紧vpn,登录后台去查看负载,看到负载很低: [oracle@powerlong4 ~]$ w 20:05:16 up 22 days, 6:33, 3 users, load average: 0.45, 0.58, 0.38 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.120.218 19:32 19:30 0.16s 0.03s sqlplu