引自: http://www.action825.com/wordpress/?p=114
安装了一个EBS12的环境,安装的步骤,还是比较简单的,但是其中的过程是相当的曲折,导致我花了4天才安装好。
EBS12安装
操作系统的安装:
安装组件时,选择客户化安装。一般安装一个图形界面(比如GOME、KDE)、安装所有的开发组件。对于服务器组件的话可以一个不选择(注意,一定 不能选择因特网服务)。
前提准备工作:
1. 修改hosts文件
以root用户登录系统。
在目录/etc/下找到hosts文件,按照如下方式加入主机名等信息。
127.0.0.1 localhost.localdomain localhost
192.168.11.248 mas248.hand.com mas248
其中需要注意的是:192.168.0.10是你定的系统的IP地址、mas248是主机名、hand.com是域名。在同一行中,主机名写在主机 名.域名的后边。
检查/etc/sysconfig/network文件中是否包含如下这行,如果没有,则追加这一行。
HOSTNAME=mas248.hand.com
检查/etc/sysconfig/networking/profiles/default/network这个文件是否存在。如果存在则删除或 者重命名。
执行ping命令,确保以下命令通过。(具体的ping值视各自的设定而定)
ping mas248
ping 192.168.11.248
ping mas248.hand.com
2. 调整系统参数。
编辑/etc/sysctl.conf文件,追加如下内容。
kernel.sem 256 32000 100 142
kernel.shmall 2097152
kernel.shmmax 2147483648
kernel.shmmni 4096
kernel.msgmax 8192
kernel.msgmnb 65535
kernel.msgmni 2878
fs.file-max 65536
net.ipv4.ip_local_port_range 1024 65000
net.core.rmem_default 262144
net.core.rmem_max 262144
net.core.wmem_default 262144
net.core.wmem_max 262144
保存文件,执行 sysctl -p 命令把这些修改反映到当前系统中。
编辑/etc/security/limits.conf文件。在文件的最后追加如下内容:
oracle hard nofile 65535
oracle soft nofile 4096
oracle hard nproc 16384
oracle soft nproc 2047
3. 创建用户和目录,并修改参数。
groupadd dba
useradd -g dba oracle
mkdir /d01
chmod -R 777 /d01
以oracle用户登录系统,修改oracle用户的登录文件.bash_profile,追加如下两行:
LD_ASSUME_KERNEL=2.4.21
export LD_ASSUME_KERNEL
4. 检验安装的软件包
rpm -q glibc-2.3.4-2.25
rpm -q glibc-common-2.3.4-2.25
rpm -q binutils-2.15.92.0.2-21
rpm -q compat-libstdc++-296-2.96-132.7.2
rpm -q gcc-3.4.6-3
rpm -q gcc-c++-3.4.6-3
rpm -q libgcc-3.4.6-3
rpm -q libstdc++-3.4.6-3
rpm -q libstdc++-devel-3.4.6-3
rpm -q libaio-0.3.105-2
rpm -q libaio-devel-0.3.105-2
rpm -q openmotif21-2.1.30-11.RHEL4.6
rpm -q pdksh-5.2.14-30.3
rpm -q setarch-1.6-1
rpm -q make-3.80-6.EL4
rpm -q gnome-libs-1.4.1.2.90-44.1
rpm -q sysstat-5.0.5-11.rhel4
rpm -q compat-db-4.1.25-9
rpm -q control-center-2.8.0-12.rhel4.5
rpm -q xscreensaver-4.18-5.rhel4.11
这一步千万不能忽视,不要以为在安装Linux的时候已经默认安装了全部开发软件包就万事大吉了。事实上,上边的红色字体的软件包并没有被默认安 装。而这三个文件的漏缺,会分别导致在安装过程中安装数据库出错和安装完毕后连接Forms的时候出现错误FRM-92101。
5. 关闭 oom-kill
# echo "0" > /proc/sys/vm/oom-kill
开始安装:
进入安装介质的 startCD/Disk1/rapidwiz/目录下。
用oracle用户执行 rapidwiz。
欢迎界面,点击 Next。
选择 Install Oracle Applications Release 12.1.1 选中 Use Express Install ,点击 Next。
确认信息正确,点击 Next。
验证安装条件,全部通过后,点击 Next。
确认安装信息,点击 Next。
开始安装,安装完毕后结束。
中文包的安装
设置语言
1. 复制oracle用户的.bash_profile(在/home/oracle下,是隐藏文件)文件成.app文件,在最后追加如下内容:
. /d01/oracle/VIS/apps/apps_st/appl/APPSVIS_mas248.env
2. 复制oracle用户的.bash_profile(在/home/oracle下,是隐藏文件)文件成.ora文件,在最后追加如下内容:
. /d01/oracle/VIS/db/tech_st/11.1.0/VIS_mas248.env
3. 以sysadmin登录系统 http://mas248.hand.com:8000
4. 选择System Administration。点击:右边区域里选择[License Manager],然后选择[Languages]
5. 英文是默认选中的。再选择中文。
7. 选择一个基本语言。这里选择中文。下一步
8. 设置完成后Submit。
维护模式及多语言表
1. 关闭应用服务
2. 执行如下命令
cd ~
source .app
cd /d01/oracle/VIS/inst/apps/VIS_mas248/admin/scripts
adadmin
这里会要求你输入一些参数,你可以根据情况作适当的输入。基本上保持默认就可以了。
但要求你输入SYSTEM的口令时,请输入manager。要求你输入APPS口令时,请输入apps。
接着会出现如下的界面
安装以下顺序选择,来打开维护模式:
选择5. Change Maintenance Mode
选择1. Enable Maintenance Mode
选择3. Return to Main Menu
安装以下顺序选择,来维护多语言表:
选择4. Maintain Applications Database Entities menu
选择3. Maintain multi-lingual tables
选择5. Return to Main Menu
选择6. Exit AD Administration
结束后,一路回车,退出ADADMIN命令。
安装补丁
安装NLS补丁包,p8576725_12.1.0_R12_GENERIC.ZIP,该包主要是解决安装语言包速度过慢的问题
1. 关闭APP服务。
2. 将p8576725_12.1.0_R12_GENERIC.ZIP解压到d01目录下。
3. 然后执行下面命令:
cd ~
source .app
cd /d01/8576725
unset LANG
adpatch
这里会要求你输入一些参数,你可以根据情况作适当的输入。基本上保持默认就可以了。
但要求你输入SYSTEM的口令时,请输入manager。
要求你输入APPS口令时,请输入apps。
要求输入patch文件时,请输入u8576725.drv。
然后等待安装完成,如果报错停止安装了,请检查日志,重新偿试。
安装中文补丁
继续上面的操作
cd /d01/6678700_ZHS
unset LANG
adpatch
这里会要求你输入一些参数,你可以根据情况作适当的输入。基本上保持默认就可以了。
但要求你输入SYSTEM的口令时,请输入manager。
要求你输入APPS口令时,请输入apps。
要求输入patch文件时,请输入u6678700.drv
然后就是漫长的等待,只到结束。
中间会遇到一个XLIFFLoader.class的错误,需要执行下面这的命令
cd ~
source .app
adjava -ms128m -mx256m -nojit oracle.apps.xdo.oa.util.XDOLoader UPLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION "(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL=tcp)(HOST=mas248.hand.com)(PORT=1521)))(CONNECT_DATA=(SID=VIS)))" -LOB_TYPE DATA_TEMPLATE -APPS_SHORT_NAME OFA -LOB_CODE FADTXD -LANGUAGE 00 -XDO_FILE_TYPE XML-DATA-TEMPLATE -FILE_NAME /d01/oracle/VIS/apps/apps_st/appl/fa/12.0.0/patch/115/publisher/defs/FADTXD.xml
adjava -ms128m -mx256m -nojit oracle.apps.xdo.oa.util.XDOLoader UPLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION "(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL =tcp)(HOST=mas248.hand.com)(PORT=1521)))(CONNECT_DATA=(SID=VIS)))" -LOB_TYPE TEMPLATE_SOURCE -APPS_SHORT_NAME OFA -LOB_CODE FADTXD -LANGUAGE en -TERRITORY US -XDO_FILE_TYPE RTF -TRANSLATE Y -FILE_NAME /d01/oracle/VIS/apps/apps_st/appl/fa/12.0.0/patch/115/publisher/templates/US/FADTXD.rtf
具体信息参看metalink 880149.1
完成后启动APP服务,打开htpp://mas248.hand.com:8000,选择“简体中文”,输入用户名sysadmin和密码 sysadmin,登录,
遇到的错误:
1. 在安装的时候报错:
查看对应的日志:
Unzip Count:240
Processing Disk14….
Processing Disk15….
Processing Disk16….
Processing Disk17….
Processing Disk18….
Unable to complete install of database
RW-50010: Error: – script. has returned an error: 137
RW-50004: Error code received when running external process. Check log file for details.
Running Database Install Driver for VIS instance
然后点击 Retry ,发现又通过了。一开始以为没啥问题,但是安装完毕之后发现数据库无法启动,手动启动数据库,发现说控制文件找不到,到数据目录下看了,果然没有,郁闷 了,看来还是那个错误导致的。
查了metalink,说是oom killer 杀掉了进程导致的。
查看了 /var/log/messages ,如果发现了 oom killer
Mar 2 22:41:59 mas248 kernel: Out of Memory: Killed process 5231 (java).
OOM Killer:
OOM Killer 。说白了 OOM Killer 就是一层保护机制,用于避免 Linux 在内存不足的时候不至于出太严重的问题,把无关紧要的进程杀掉,有些壮士断腕的意思。
先要学习点老知识,在 32 位CPU 架构下寻址是有限制的。Linux 内核定义了三个区域:
# DMA: 0×00000000 – 0×00999999 (0 – 16 MB)
# LowMem: 0×01000000 – 0×037999999 (16 – 896 MB) – size: 880MB
# HighMem: 0×038000000 – <硬件特定>
LowMem 区 (也叫 NORMAL ZONE ) 一共 880 MB,而且不能改变(除非用 hugemem 内核)。对于高负载的系统,就可能因为 LowMem 利用不好而引发 OOM Killer 。一个可能原因是 LowFree 太少了,另外一个原因是 LowMem 里都是碎片,请求不到连续的内存区域【根据我遇到的一个案例,一个猜想是有些应用一次性请求比较大的内存,恰恰又是 880M 之内的,空闲的(LowFree)不够大,就会触发 OOM Killer 出来干活】。检查当前 LowFree 的值:
# cat /proc/meminfo |grep LowFree 检查LowMem内存碎片:
# cat /proc/buddyinfo
上面这条命令要在 2.6 Kernel 环境下有效。据说使用 SysRq 的方式更好,不过 Hang 的时候再用吧。参见 Metalink Note:228203.1 。
根据一些文档描述,OOM Killer 在 2.4 与 2.6 上表现是不一样的。2.4 的版本中是把新进来(新申请内存)的进程杀掉。而 2.6 上是杀掉占用内存最厉害的进程(这是很危险的,很容易导致系统应用瘫痪)。
对于 RHEL 4 ,新增了一个参数: vm.lower_zone_protection 。这个参数默认的单位为 MB,默认 0 的时候,LowMem 为 16MB。建议设置 vm.lower_zone_protection = 200 甚至更大以避免 LowMem 区域的碎片,是绝对能解决这个问题的(这参数就是解决这个问题出来的)。
而对于 RHEL 3 (Kernel 2.4) 似乎没什么好办法,一个是用 Hugemem 内核(天知道会不会引入新的毛病),一个是升级到 2.4.21-47 并且使用新的核心参数 vm.vm-defragment 控制碎片的数量。再就是使用 RHEL 4 (Kernel 2.6),这又绕回去了。说白了,如果遇到 OOM Killer ,基本上是低版本 Kernel 设计上有点缺陷。
其它,如果去查询 RedHat 的 Bug 库,会发现不少 Kernel 版本也有 Bug 的。尤其在使用 NFS 的场景。
Tip: OOM Killer 的关闭与激活方式:
# echo "0" > /proc/sys/vm/oom-kill
# echo "1" > /proc/sys/vm/oom-kill
解决方法:
1. 关闭 OMM Killer
echo "0" > /proc/sys/vm/oom-kill
2. 为设置参数 vm.lower_zone_protection
3. 在OEL/RHEL5,可以为每个进程设置oom_adj参数,来设定被oom killer杀掉的可能性,取值范围在-16到15,数值越大越容易被杀,-17说明不会被omm killer杀掉,例如:
# echo -17 > /proc/2592/oom_adj
进程 2592不会被omm killer杀掉。
参考文档:
1. Rw-50010 Error : 137 Rw-50004 Running External Process Running Database Install [ID 460790.1]
2. Linux: Out-of-Memory (OOM) Killer [ID 452000.1]
3. Linux Kernel Lowmem Pressure Issues and Kernel Structures [ID 452326.1]
4. Patch 6678700 Fails With Xliffloader Error On R12 Vision [ID 880149.1]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9466564/viewspace-629404/ ,如需转载,请注明出处,否则将追究法律责任。