|
|
发表于 2008/3/16 23:23:02
|
显示全部楼层
终于完成EBS 11.5.10.2的安装
原帖由 websterz 于 2008-3-11 00:28 发表 
为了参加这次交流培训,我3月1日去鼎好装了一台机器,
CPU: AMD Phenom 9500, 4核
主板: ONDA A78G
内存: 4G
硬盘: 希捷,7200.10 SATA 250G
同时,我从Oracle 安装网上买了 ebs 11.5.10的安装盘 ...
今天终于完成了oracle EBS的安装。
从3月10日决定放弃直接安装Linux(因为Linux不支持我的SATA硬盘), 到现在(3月16日晚上10:53),终于第一次见到了EBS的登录界面!
本来想周六就可以完成安装,这样周日就可以去参加北京组织的爬香山活动。结果周六一直被一个问题困扰着.
安装了4次,都是到这里出错。<当然,每次我都会根据网上的建议进行一些修改>, 实在是备受打击。
周日中午时把所有的log都打印了出来,准备拿到香山去问问各位的 因为想看看最后一次安装是否
成功,没有去香山,但同样的错误还是发生了(身心俱疲) 。google里面搜到的建议居然没有一个可行的。
下午3点半,绝望,想出去走走,凑巧拿起一本Linux故障诊断的书,受其启发而一举解决了那个问题。
之后的安装一马平川,到10:53PM看到登录界面,没有任何错误。
为了纪念这段经历,说说这个可笑的错误吧。
■错误现象
◆Stage2进展到40%时,总是发生如下错误
━━━━━━━━━━━━━━━━━
RW-50004: Error code recevied when running external process. Check Log file for details.
Running Database Install Driver for VIS instance
━━━━━━━━━━━━━━━━━
◆看安装log, $ORACLE_HOME/appsutil/log/$SID_$hostname/$date.log
━━━━━━━━━━━━━━━━━
ora-27102 Out of Memory
Linux Error: 28: No space left on device
━━━━━━━━━━━━━━━━━
◆看数据库udump的trace 文件, $SID_$HOST_number.trc
━━━━━━━━━━━━━━━━━
skgm warning: ENOSPC creating segment of size 0000000020000000
fix shm parameters in /etc/system or equivalent
━━━━━━━━━━━━━━━━━
◆此时数据库文件已经生成,启动数据库
━━━━━━━━━━━━━━━━━
[oravis@seiya 9.2.0]$ . VIS_seiya.env
[oravis@seiya 9.2.0]$ sqlplus /nolog
conn
SQL*Plus: Release 9.2.0.6.0 - Production on Sun Mar 16 21:36:23 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
ORA-27102 Out of Memory
Linux Error: 28: No space left on device
━━━━━━━━━━━━━━━━━
错误原因为内存不够,但我的系统:
━━━━━━━━━━━━━━━━━
RHEL4U3
内存: 2.5G
swap: 4G
/u01: 173G, 安装文件在此目录下,占30G,还有空间 143G
━━━━━━━━━━━━━━━━━
怎么也不应该发生这个问题。
■解决
修改kernerl.shmall = 2079152(或者更大)
之后问题解决。
■故障分析
1. http://www.informit.com/articles/article.aspx?p=481867&seqNum=2
if (shm_tot + numpages >= shm_ctlall)
return -ENOSPC;
如果请求的虚拟内存超过可以分配的共享内存,就会出现 ENOSPC错误
说明问题原因在于共享内存上。
2. shmall, shmmax, shmmni 的关系以及意义
可以参考: http://www.puschitz.com/TuningLinuxForOracle.shtml#SettingSHMALLParameter
※SHMALL
This parameter sets the total amount of shared memory pages that can be used system wide. Hence,
SHMALL should always be at least ceil(shmmax/PAGE_SIZE).
系统范围内可以使用的全部共享内存。
单位: PAGE
※SHMMAX
This parameter defines the maximum size in bytes of a single shared memory segment that a Linux process can allocate in its virtual address space
Linux进程在其虚拟地址空间内可以分配的单个共享内存段的大小。
单位Byte.
SHMMAX限制了oracle database SGA的大小,所以安装DB和EBS时都要调整这个参数。
◆因为shmmax是单个共享内存段的最大尺寸。系统范围内会有多个共享内存段存在(可以通过ipcs -a来查看),
所以shmmall的最小值应该是 shmmax/PAGE_SIZE
kernel.shmall的缺省值为2097152, 表示系统可以使用的全部共享内存为8G. 这一般都够用。
3. 我的系统的shmall值为:
kernel.shmmall = 131072
如此设置的话,系统可以使用的整理共享内存总量为: 131072 * 4096 /1024/1024 = 512M.
(4096为PAGE_SIZE,可以通过命令
getconf PAGE_SIZE
获取)
而实际DB在启动时,SGA的大小为
━━━━━━━━━━━━━━━━━
[oravis@seiya 9.2.0]$ sqlplus /nolog
SQL*Plus: Release 9.2.0.6.0 - Production on Sun Mar 16 21:36:23 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 581506668 bytes (--->555M)
Fixed Size 452204 bytes
Variable Size 402653184 bytes
Database Buffers 167772160 bytes
Redo Buffers 10629120 bytes
━━━━━━━━━━━━━━━━━
DB需要的共享内存为555M, 而系统的全部可以使用的共享内存为512M, 即便设置了shmmax为1G也没有用也分配不了1G,
所以发生了上面的错误。
4. 为什么会设置: kernel.shmall = 131072?
从OTN上去下载25G的安装文件比较恐怖,所以我的安装光盘是从Oracle安装网http://www.oracle-install.cn/service/index.htm
买的,其中有安装文档。我对shmall不太清楚,所以就直接抄了过来。(#对shmmax还是比较清楚的)。
这一疏忽导致了3天时间的浪费。
我已经发信Oracle安装网的作者去解释这个事情了。希望他修改文档,以免其他人重蹈覆辙。
■说明
1. 当初如果直接按照这个帖子的说明来进行,应该早就安装完了。后悔。
2. 安装11.5.10时,不需要 LD_ASSUME_KERNEL=2.4.9. 11.5.9及以前才需要。
★★★★★从明天开始,学习进入正轨。
[ 本帖最后由 websterz 于 2008-3-17 11:21 编辑 ] |
|