简介:面向具备Linux与Oracle数据库基础的技术人员,尤其是负责Oracle EBS系统安装、配置与维护的IT专业人员,这份资料系统梳理了Oracle EBS R12.1.1至R12.1.3在生产环境下的部署全流程,涵盖Oracle Linux系统安装与配置、EBS安装与升级、数据库升级以及Oracle AS 10g应用服务器的安装升级,并针对常见问题给出解决方案,可帮助读者完成从操作系统准备到应用服务器部署的各环节落地。资源包共1个文件,为844KB的PDF文档,内容按Linux OS安装、在线升级与软件安装、OS环境配置等章节组织,目录结构清晰,便于按模块查阅与对照操作。目前已有953人学习下载,适合需要系统掌握EBS生产环境部署、排查安装升级问题并查漏补缺的中高级技术人员参考。
1. 生产环境装 EBS R12.1:为什么老手都从 OS 层开始翻车
接手一套 Oracle EBS R12.1 生产环境,最反直觉的一点是:真正让人通宵的不是 EBS 安装器本身,而是它下面那层 Linux。我见过太多团队把 R12.1.1 的安装盘挂上去就开始跑 rapidwiz,结果卡在 OS 包缺失、内核参数没调、hosts 解析对不上,最后回头重装系统。这份《Oracle EBS R12.1 系统安装与升级指南》的价值就在这——它把 Linux OS 配置、EBS R12.1.1 安装、打补丁升到 R12.1.3、数据库升到 11.2.0.4、OracleAS 10g 升级、克隆与 IP 变更 autoconfig 串成了一条完整链路,还附了 30 多条已解决问题。适合谁?手上有一台能重装的测试机、准备把 EBS 从老版本推到 R12.1.3、或者要克隆一套生产库做演练的 DBA 和 EBS 顾问。不适合只想点两下就装完的人,这套东西本质是体力活加细节活。
2. Linux OS 层:R12.1 安装前必须钉死的六件事
EBS R12.1 对 OS 的要求不是"能装就行",而是"装对了才行"。文档以 Oracle Linux 6.8 为示例,RedHat、SUSE 大同小异,但下面这几项如果漏了,后面 rapidwiz 阶段会以各种看不懂的报错回敬你。
2.1 系统包、内核参数与资源限制
R12.1 安装前要装的 OS 包清单很长,核心是 compat-libstdc++、gcc、glibc、libaio、sysstat、unixODBC 这一类。文档里"OS 系统包安装和升级"和"Oracle 专用补丁"两节就是干这个的。我一般会先把包一次性装齐再动 EBS,避免装到一半缺库。
内核参数改/etc/sysctl.conf,EBS 场景下重点是共享内存和信号量:
# /etc/sysctl.conf 追加,EBS R12.1 常用起点值 kernel.shmall = 2097152 kernel.shmmax = 2147483648 # 按物理内存一半起步,别超过 4G 太多 kernel.shmmni = 4096 kernel.sem = 256 32000 100 142 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576shmmax是单个共享内存段上限,Oracle SGA 要放得进去;sem四个值分别是 SEMMSL、SEMMNS、SEMOPM、SEMMNI,EBS 并发请求多的时候信号量不够会直接报 ORA-27154。改完执行sysctl -p生效,别只改不加载。
资源限制改/etc/security/limits.conf,给 appl 和 oracle 用户都加上:
# /etc/security/limits.conf appl soft nproc 2047 appl hard nproc 16384 appl soft nofile 4096 appl hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 4096 oracle hard nofile 65536nofile不够时,EBS 的并发管理器会莫名其妙起不来,日志里只给你一句"unable to open file",这种玄学问题查起来最费时间。
2.2 主机名、hosts、防火墙与 SSH
EBS 对主机名极其敏感,安装时写进去的 hostname 后面改一次就要跑一次 autoconfig,改两次就想重装。文档里"IP 配置""主机和域名网络配置"强调的就是这点:安装前把/etc/hosts定死,格式必须是IP 全限定域名 短名,例如:
# /etc/hosts 示例,IP 和域名按实际规划替换 192.168.10.21 ebsprod.example.local ebsprod短名和 FQDN 都要能 ping 通,hostname命令输出要和 hosts 里的短名一致。防火墙直接关掉,service iptables stop加chkconfig iptables off,SELinux 设成 permissive 或 disabled。这不是偷懒,EBS 的端口矩阵太杂,生产环境该由网络层做策略,主机防火墙留着只会让 forms 连不上。
SSH 要配好,文档里 SecureCRT、PuTTY、VNC 三种登录方式都讲了,实际干活 VNC 是刚需,因为 rapidwiz 是图形化安装器。VNC 装好后用vncserver :1起会话,再用客户端连IP:5901,分辨率建议至少 1024x768,rapidwiz 的窗口在小屏上按钮会被裁掉。
2.3 磁盘挂载、用户与目录规划
新盘挂载和格式化文档单独列了一节,EBS 典型的分区规划是/u01放数据库和应用、/u02放归档和备份。挂载要写进/etc/fstab做自动挂载,否则重启后目录空了,数据库直接起不来。
创建用户和组这一步别自作聪明。EBS 标准是oracle用户管数据库、appl用户管应用层,两个用户各自有 dba 组和 oinstall 组。文档里"创建 EBS 用户和用户组""Linux 用户名的修改"就是在处理这个。用户名一旦装完再改,profile、crontab、文件属主全要跟着动,血泪经验是:装之前想清楚,装完别动。
oraInventory目录要提前建好并授权,路径一般/u01/app/oraInventory,属主oracle:oinstall,权限 770。这个目录是 Oracle 所有产品的清单中心,权限错了后面打补丁会报"inventory 不可写"。
Java 环境变量也要设,EBS R12.1 自带 JDK,但 OS 层最好有一个可用的JAVA_HOME指向/usr/java/latest,避免某些脚本找不到 java。
3. EBS R12.1.1 安装到 R12.1.3:补丁链的顺序不能乱
这一章是整个文档最厚的部分,也是最容易出事的。R12.1.1 装完只是起点,真正到生产可用要经过 9239090 升级、ADPatch 打 9239089、中文语言包、多语言加速包、9817770 和 9966055 这几个补丁,顺序错了就得回滚重来。
3.1 rapidwiz 安装 R12.1.1 的关键参数
安装源解压后进startCD/Disk1/rapidwiz,用 appl 用户跑./rapidwiz。图形界面里几个参数必须和 OS 层对齐:
| 参数项 | 取值要求 | 踩坑点 |
|---|---|---|
| 主机名 | 与 hosts 短名完全一致 | 大小写敏感,装完改要 autoconfig |
| 数据库 SID | 如 PROD,全大写 | 后续 initPROD.ora 文件名跟着它走 |
| 应用层目录 | /u01/app/oracle/VIS | 路径别带空格和特殊字符 |
| 端口 | 默认 8000/1521 等 | 与现有服务冲突时提前改 |
| 字符集 | AL32UTF8 | 中文环境必须,装完改不了 |
安装过程中 rapidwiz 会调 root 脚本,提示时用 root 执行root.sh,别跳过。装完先别急着启动,按文档"安装完成后 DB 和 Apps 用户 home 环境变量配置"把.bash_profile里的ORACLE_HOME、APPL_TOP、ADMIN_SCRIPTS_HOME都配好,再跑adstrtal.sh启动。
启动脚本在$ADMIN_SCRIPTS_HOME下,常用两条:
# 启动 EBS 全部服务,appl 用户执行 cd /u01/app/oracle/VIS/fs1/EBSapps/appl/admin/scripts ./adstrtal.sh apps/<apps密码> # 停止 ./adstpall.sh apps/<apps密码>adstrtal.sh会依次拉起数据库监听、并发管理器、forms、web 等服务,任何一环失败都会在$APPLRGF日志里留痕。第一次启动慢是正常的,等 5 到 10 分钟再判断死活。
3.2 升级到 R12.1.3 的补丁顺序
文档给的路径是:先准备升级环境,改initPROD.ora加disable_fast_validate,授权中文语言,关应用开数据库,进维护模式,打多语言加速包 8576725,再用 ADPatch 打 9239089,编译 APPS schema,扩表空间,改adrelinknew.sh参数,打中文补丁,最后打 9239090 升到 R12.1.3。
disable_fast_validate这个参数是给升级期间用的,加在 init.ora 里能绕过一些校验,升完记得评估是否移除。ADPatch 打 9239089 时文档标注了 DocID 1077769.1,这是官方对该补丁的说明文档编号,实际执行前值得对一遍。
ADPatch 跑起来后监控靠adpatch.log和adwork001.log,文档"补丁过程监控"一节讲的就是看这些日志判断进度。补丁期间表空间容易撑爆,文档专门有"扩展表空间"一步,我一般会提前把 APPS 和 SYSTEM 表空间各加 10G 余量,省得跑到一半 ORA-01653。
adrelinknew.sh参数修改这步容易被忽略,它影响 relink 时用的编译选项,改错了 forms 起来会段错误。文档给了具体改法,照着改就行,别自己发挥。
3.3 中文语言包与多语言加速
授权中文语言是在 EBS 里通过 OAM 或 AD 工具做的,文档"授权中文语言"一节有步骤。多语言加速包 8576725 是给非英语语言打的基础补丁,不打的话中文补丁会报依赖缺失。中文补丁本身在 9239090 之后打,顺序反了语言切换会不生效。
打完所有补丁后跑一次 Autoconfig,让配置文件重新生成。Autoconfig 是 EBS 的配置黑匣子,任何涉及主机名、端口、目录的变更最后都要靠它落地。文档里 Autoconfig 出现多次,每次补丁后都建议跑一遍,这是规矩。
4. 数据库升到 11.2.0.4 与 OracleAS 10g 升级:最容易被低估的两段
EBS R12.1.3 配套的数据库要升到 11.2.0.4,应用服务器 OracleAS 10g 要升到 10.1.3.5。这两段在文档里各占一大节,实操中也是最耗时的。
4.1 DBUA 升级数据库的前置动作
升级前准备包括:备份、检查initPROD.ora参数、确认compatible参数、检查无效对象。文档"数据库升级前准备"列了清单,照着走。
装 11.2.0.4 软件时注意:只装软件,不建库,ORACLE_HOME 用新路径比如/u01/app/oracle/product/11.2.0.4/dbhome_1,别覆盖原 10g 或 11g 的 home。装完打 11.2.0.4 的补丁,文档"安装 DB11.2.0.4 的数据库 Patch"和"更新 Oracle DB11.2.0.4"两节讲这个。
DBUA 升级时几个关键选择:
- 升级方式:选"升级现有数据库",不要选"复制" - 时区文件:选升级(Upgrade Time Zone),EBS 对时区敏感 - 并行度:生产机建议 2 到 4,别拉满 - 升级后备份:勾上,DBUA 会自动做DBUA 跑完要重建监听和 TNS,文档"创建数据库 DB11.2.0.4 的监听器和 TNS"就是这步。监听器名建议沿用原来的,端口不变,避免 EBS 的 tnsnames.ora 大改。
升级后initPROD.ora要更新,文档"更新 DB11.2.0.4 的 initPROD.ora 文件"给了参数对照。11.2.0.4 有些参数废弃了,有些新增了,比如memory_target如果原来用 AMM,升级后要确认没冲突。
4.2 升级后的收尾:授权、统计信息、同义词
DB 升完不是结束,文档列了一串收尾动作:DB 层授权、验证工作流规则集、升级后 Autoconfig、应用层 ECX patch、收集 SYS 统计信息、重建 apps 授权和同义词、重启应用和数据库、同步工作流视图。
"重建 apps 授权和同义词"这步尤其关键,EBS 的 APPS schema 依赖大量同义词指向底层对象,DB 升级后对象 OID 变了,不同义词就会出现 FRM-40735 之类的运行时错误。文档给了脚本,跑完用utlrp.sql编译无效对象。
收集 SYS 统计信息用exec dbms_stats.gather_schema_stats('SYS', cascade=>true),EBS 的 CBO 依赖统计信息,不收集执行计划会飘。
4.3 OracleAS 10g 升到 10.1.3.5
OracleAS 是 EBS 的中间件层,forms、reports 都跑在上面。文档"升级 OracleAS10g"一节从装 10.1.3.0 PatchSet5 开始,到装 10.1.3.5、跑 AutoConfig、装 8999551 和 12965674 补丁、生成appsborg.zip和appsborg2.zip、启动服务。
appsborg.zip是 forms 的 Java 类归档,生成后要放到$COMMON_TOP/html下供客户端下载。生成脚本在$AD_TOP/bin下,跑完检查 zip 大小,太小说明类没打全,客户端打开 forms 会白屏。
5. 避坑与排查:文档里那 30 多条问题背后的共性
文档第三部分"已解决问题和方案"列了 30 多条,从 ORA-12547 到 FRM-92050 都有。我把它们归成几类,每类给一条典型现象、原因和解决。
现象:rapidwiz 安装到一半报 ORA-12547 TNS:lost contact。原因:通常是 OS 层shmmax太小或sem不够,数据库实例起不来,安装器连不上。也可能是oracle用户对$ORACLE_HOME/bin/oracle没有执行权限。 解决:先sysctl -p确认参数生效,再ls -l $ORACLE_HOME/bin/oracle看权限,应该是-rwsr-s--x,属主 oracle:oinstall。不对就chmod 6751修。
现象:打补丁时报oracle.apps.fnd.txk.config.ProcessStateException。原因:TXK 是 EBS 的配置管理组件,这个异常多半是 Autoconfig 没跑完或$APPL_TOP/admin下的上下文文件损坏。 解决:先跑adautocfg.sh重新生成上下文,再重跑补丁。如果还报,检查$APPL_TOP/admin/<SID>_<hostname>.xml里的主机名和实际是否一致。
现象:克隆数据库时报java.io.FileNotFoundException。原因:克隆脚本里引用的 JDBC 驱动路径不对,或者$ORACLE_HOME/jdbc/lib下缺 jar。 解决:确认$ORACLE_HOME/jdbc/lib/ojdbc6.jar存在,克隆脚本里的 classpath 指向它。文档"数据库克隆时"那条就是这个问题。
现象:应用起来后 forms 报 FRM-92050 Failed to connect to the Server。原因:forms servlet 连不上,通常是 OracleAS 的formsweb.cfg里serverURL配错,或者appsborg.zip没生成。 解决:检查$ORACLE_HOME/forms/server/formsweb.cfg的serverURL是否指向本机http://host:port/forms/lservlet,再确认appsborg.zip在$COMMON_TOP/html下且大小正常。
现象:Win7 客户端 IE8 打开 EBS 报 FRM-92095 jinitiator 版本太旧。原因:R12.1 默认用 JInitiator,新版浏览器不兼容。 解决:切到 Sun JRE 插件,改formsweb.cfg的baseHTMLjinitiator为baseHTMLjpi,客户端装对应版本 JRE。文档"Win7 系统 IE8 EBSR12.1 报错"那条讲的就是这个。
现象:Device eth0 does not seem to be present, delaying initialization。原因:克隆或换网卡后 MAC 地址变了,/etc/sysconfig/network-scripts/ifcfg-eth0里的HWADDR对不上。 解决:删掉HWADDR行,或改成新网卡的 MAC,再service network restart。文档里这条是虚拟机克隆的经典坑。
6. 克隆与 IP 变更:把生产环境复制到测试机的实操细节
文档"R12.1.3 的预克隆和克隆"以及"IP 改变的 autoconfig"是整套资料里最实用的部分之一。生产环境不能拿来试补丁,克隆一套到测试机是标准做法。
预克隆分 DB 和应用两层。DB 层用preclone.pl,应用层用adpreclone.pl,两个脚本都在各自$ORACLE_HOME或$AD_TOP/bin下。预克隆的目的是把环境"冻结"成可复制的状态,跑完再tar或rsync到目标机。
# DB 层预克隆,oracle 用户执行 cd $ORACLE_HOME/appsutil/scripts/<CONTEXT_NAME> perl adpreclone.pl dbTier # 应用层预克隆,appl 用户执行 cd $ADMIN_SCRIPTS_HOME perl adpreclone.pl appsTier<CONTEXT_NAME>一般是PROD_ebsprod这种格式,SID 加主机名。预克隆跑完会在$ORACLE_HOME/appsutil/clone下生成克隆用的文件。
目标机上的克隆分两步:先perl adcfgclone.pl dbTier配 DB 层,再perl adcfgclone.pl appsTier配应用层。配的时候会问新主机名、新端口、新 SID,答错一个就得重来。
IP 变更后必须跑 Autoconfig,文档"IP 改变的 autoconfig"一节给了步骤。核心是改$APPL_TOP/admin/<CONTEXT>.xml里的主机名和 IP,然后跑adautocfg.sh。Autoconfig 会重新生成所有配置文件,包括 tnsnames.ora、formsweb.cfg、httpd.conf。跑完重启应用,用adstrtal.sh起,再用adop或adctrl确认并发管理器正常。
克隆环境里有个常见坑:目标机的$ORACLE_HOME路径如果和源机不同,克隆脚本会报路径不匹配。解决办法是克隆前把目标机的目录结构建成和源机一致,或者用adcfgclone.pl的-target参数指定新路径。我一般选前者,省事。
从那以后我每次克隆前都强制走一遍预克隆加路径核对,宁可多花半小时,也不想在目标机上追一个路径错位的报错追一下午。希望帮到你。
本文还有配套的精品资源,点击获取