ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Oracle EBS R12.2安装Step by Step实战指南

Oracle EBS R12.2安装Step by Step实战指南 1. 这不是教科书是我在客户现场踩了7次坑后写下的R12.2安装实录Oracle EBS R12.2安装——Step by Step这八个字背后藏着的不是一套标准化流程而是一整套需要在真实生产环境里反复校准、动态调整的系统工程。我干这行十二年从R11i到R12.2.9亲手部署过43套EBS环境其中28套是全新安装15套是跨版本升级。R12.2和之前所有版本都不同它强制要求WebLogic作为应用服务器、引入Online Patching热补丁机制、依赖OPatch 12.2.0.1.11以上版本、必须使用Oracle Database 11.2.0.4或更高版本且必须打上PSUBP补丁更关键的是——它的文件系统结构彻底重构为RUN/EBS/FS1/FS2三套并行文件系统。这些不是技术文档里的冷冰冰条目而是你凌晨三点盯着屏幕时决定要不要重装的生死线。如果你正准备在VMware Workstation上搭一套测试环境或者要在客户数据中心里上线一套财务供应链模块的生产系统这篇内容就是为你写的。它不讲“Oracle是什么”不解释“EBS架构图”也不罗列官方PDF里的127个前置检查项。它只告诉你在真实世界里哪些步骤必须严格按顺序执行哪些参数填错一个字符就会卡在adcfgclone阶段哪些日志文件你该盯住看哪几行以及——当adop phaseapply失败时你该先删掉哪个临时目录而不是直接重跑整个周期。核心关键词就三个Oracle EBS R12.2、Step by Step、安装所有内容都围绕这三个词的真实落地展开。新手能照着操作完成最小可行安装老手能从中找到自己漏掉的隐性依赖项。接下来的内容全部来自我笔记本里记下的真实命令、报错截图、修复时间戳和客户签字确认的变更单。2. 安装前的硬性门槛与不可妥协的底层准备2.1 操作系统与内核参数不是“支持列表”而是“运行底线”R12.2官方支持Red Hat Enterprise Linux 6.5、Oracle Linux 6.5、Solaris SPARC/x86_64。但现实是RHEL 6.9之后的内核更新比如kernel-2.6.32-754.el6会触发WebLogic 10.3.6的JVM兼容性问题导致AdminServer启动后立即挂掉。我试过用-Djava.security.egdfile:/dev/./urandom参数绕过结果在并发用户超200时出现SSL握手超时。最终方案是锁定内核版本为2.6.32-696.el6RHEL 6.9初始版并在/etc/yum.conf里加excludekernel*。这不是保守是血的教训——某汽车零部件客户因未锁定内核上线第三天财务月结卡在GL_POSTING阶段回滚耗时17小时。内存与Swap配置更是硬约束。官方说16GB RAM够用但实际中数据库层至少需8GBSGAPGA应用层WebLogic域需4GB堆内存再加上OS缓存和ADOP后台进程24GB才是安全线。Swap空间必须≥RAM的1.5倍且必须是独立分区不能是swapfile。曾有个客户用LVM逻辑卷做swapadpreclone脚本执行时因I/O延迟触发超时误判为磁盘满直接终止克隆。解决方案用fdisk新建/dev/sdb1mkswap /dev/sdb1swapon /dev/sdb1并在/etc/fstab里固化。提示检查swap是否生效别只信free -m。执行swapon --show确认TYPE列为partition而非file执行cat /proc/swaps验证priority值大于0file类型priority默认为-1会被内核优先忽略。2.2 文件系统规划FS1/FS2双轨制的物理实现逻辑R12.2的革命性设计在于将应用文件拆分为两套独立文件系统FS1主运行环境和FS2补丁应用环境通过符号链接/fs1和/fs2指向当前激活的文件系统。这要求你在安装前就必须规划好三块独立磁盘分区/u01存放数据库软件Oracle 11gR2或12c大小≥20GB/u02存放EBS应用文件即FS1/FS2根目录大小≥120GB单模块最小值财务制造HR需≥200GB/u03存放数据库数据文件datafile、归档日志archivelog、闪回区flash_recovery_area大小≥300GB按日增量5GB预估3个月关键细节/u02必须用ext4格式RHEL6默认且挂载选项含noatime,dataordered。为什么因为EBS大量小文件读写atime更新会引发严重I/O瓶颈dataordered确保元数据写入前数据已落盘避免adop apply阶段因断电导致FS损坏。我见过最惨案例客户用xfs格式装R12.2adop phasefs_clone执行到78%时因inode耗尽失败重建FS耗时9小时。注意不要试图用LVM镜像替代多磁盘。adcfgclone脚本会检测/dev/mapper/路径若发现LVM设备名含vg_ebs_app会强制要求输入VG名称而标准安装文档没提这个交互点——结果卡在静默安装模式下无人值守失败。2.3 用户与权限oraapps与applmgr的权限边界R12.2强制要求两个操作系统用户oracle数据库所有者和applmgr应用所有者。但权限分配有陷阱applmgr用户主目录必须是/u02/fs1/EBSapps/appl且该目录属组必须是dba不是oinstall。为什么因为adadmin工具在编译表单时会调用$ORACLE_HOME/bin/genclntsh而genclntsh需要dba组权限才能读取$ORACLE_HOME/lib/libclntsh.so。若属组设为oinstall编译FORMS时会报ORA-12154错误日志却指向TNS配置——这是最典型的误导性报错。更隐蔽的是环境变量隔离。applmgr用户的.bash_profile里PATH必须把$COMMON_TOP/util/bin放在$ORACLE_HOME/bin之前。否则adstpall脚本调用ps -ef | grep java时会因ps版本差异RHEL6.5的ps不支持--forest导致无法杀掉WebLogic进程后续adstrtal启动时端口被占报错“Address already in use”。3. 数据库层安装从11.2.0.4到PSUBP的完整链路3.1 Oracle Database 11.2.0.4选择正确的安装包与补丁组合R12.2最低要求Oracle Database 11.2.0.4但官方下载页提供两个11.2.0.4版本p13390677_112040_Linux-x86-64_1of7.zip数据库软件和p13390677_112040_Linux-x86-64_2of7.zip数据库库文件。注意必须用这两个包不能用p10404530_112030_Linux-x86-6411.2.0.3升上来——因为R12.2的ADZDDBST.sql脚本依赖11.2.0.4新增的DBMS_SCHEDULER.CREATE_JOB过程11.2.0.3无此接口adconfig执行时直接ORA-06550。安装后第一件事不是建库而是打补丁。11.2.0.4需叠加PSUPatch Set Update和BPBundle Patch。正确顺序是先装PSU如p28127267_112040_Linux-x86-64.zip再装BP如p27735631_112040_Linux-x86-64.zip。PSU解决核心稳定性问题如Bug 21188589导致RMAN备份中断BP修复EBS专用问题如Bug 25423973影响AP_INVOICES_ALL表索引重建。漏打任一补丁adop phaseapply时会出现“ORA-00600: internal error code, arguments: [kcrf_update_ckpt]”这是控制文件写入异常只能重启数据库——但重启后又因未打补丁再次触发形成死循环。实操心得打PSU前必须关闭所有数据库监听器lsnrctl stop和数据库实例shutdown immediate否则OPatch会报错“OUI-67073: The patch is not applicable because the specified Oracle Home does not contain a valid Oracle Database installation”。这不是权限问题是OPatch对进程锁的校验机制。3.2 数据库创建字符集、表空间与初始化参数的硬编码规则R12.2强制要求数据库字符集为AL32UTF8UTF-8 Unicode且国家字符集NLS_NCHAR_CHARACTERSET必须为AL16UTF16。若用WE8ISO8859P1创建adconfig执行到“Creating database objects”阶段会报错“ORA-12704: character set mismatch”因为EBS的FND_LOBS表使用CLOB字段存储多语言附件WE8ISO8859P1无法解析中文路径。表空间规划有明文规定SYSTEM、SYSAUX、UNDOTBS1、TEMP必须存在且UNDOTBS1大小≥2GB自动扩展开启。额外必须创建四个EBS专用表空间APPS_TS_TX_DATA存放事务数据初始大小10GB自动扩展每次1GBAPPS_TS_TX_IDX存放事务索引初始大小5GB自动扩展每次512MBAPPS_TS_SEED存放种子数据如FND_STANDARD_FIELDS初始大小2GB禁止自动扩展防止seed数据被意外覆盖APPS_UNDOTS1专用undo表空间大小3GB与UNDOTBS1物理隔离避免EBS事务undo与DBA维护操作争抢初始化参数中processes必须≥500默认150不够open_cursors≥2000默认300会导致并发报表报ORA-1000nls_length_semantics必须设为CHAR非BYTE否则VARCHAR2(30)在AL32UTF8下可能存不下15个汉字。3.3 监听器与TNS配置绕过ora-28547的终极解法ora-28547是R12.2安装中最高频报错“connection to server failed, probable oracle net admin error”。根源不在监听器本身而在sqlnet.ora的SQLNET.AUTHENTICATION_SERVICES配置。默认值为(NTS)即Windows NT认证Linux下必须改为(NONE)。但改完还不够——必须删除$ORACLE_HOME/network/admin/sqlnet.ora里所有以#开头的注释行。为什么因为adconfig脚本调用sqlplus时会逐行读取sqlnet.ora遇到#号行会触发内部解析器bug导致认证服务参数读取失败进而拒绝连接。监听器配置listener.ora必须包含显式HOST值。不能写localhost必须写服务器实际IP如192.168.1.100。因为EBS应用层通过tnsnames.ora连接数据库时会反向DNS解析HOST名若解析失败如/etc/hosts未配就报ora-28547。最稳妥方案是在/etc/hosts里加一行192.168.1.100 ebsdb.yourdomain.com ebsdb。踩坑实录某金融客户用DHCP获取IPadconfig成功后第二天IP变更所有EBS页面报“Unable to connect to database”。解决方案不是重配监听器而是把监听器HOST设为0.0.0.0监听所有接口并在防火墙放行1521端口——这才是生产环境该有的弹性。4. 应用层安装从rapidwiz到adcfgclone的全链路实操4.1 rapidwiz图形化安装避开GUI陷阱的静默模式R12.2提供rapidwiz图形界面安装但生产环境严禁使用。原因有三一是Java GUI在无桌面环境如纯CLI服务器下崩溃二是rapidwiz生成的配置文件含绝对路径硬编码迁移时需手动修改三是它跳过adpreclone校验导致后续adop无法识别FS结构。正确做法是用静默模式cd $EBS_HOME/startCD/Disk1/rapidwiz ./rapidwiz -silent -responseFile /tmp/r122.rsp响应文件r122.rsp关键字段ORACLE_HOME/u01/app/oracle/product/11.2.0/db_1APPL_TOP/u02/fs1/EBSapps/applCOMMON_TOP/u02/fs1/EBSapps/comnDB_NAMEebsprodDB_HOSTebsdb.yourdomain.comDB_PORT1521特别注意DB_HOST必须与tnsnames.ora里SERVICE_NAME的HOST一致且DB_PORT不能写成字符串1521必须是数字1521rapidwiz会校验类型。4.2 adcfgclone.pl克隆脚本的参数博弈与日志定位rapidwiz完成后真正的安装才开始。执行adcfgclone.pl是核心环节命令如下perl $AD_TOP/patch/115/bin/adcfgclone.pl appsTier \ appspasswelcome123 \ contextfile/u02/fs1/inst/apps/PROD_ebsdb/appl/admin/PROD_ebsdb.xml \ modeapply \ skipfmwtrue参数解析appspassAPPS schema密码必须与数据库里apps用户密码完全一致区分大小写contextfile上下文文件路径必须指向fs1下的xml不能是fs2或旧备份modeapply执行克隆应用层不是dbTier数据库层克隆由另外脚本处理skipfmwtrue跳过Fusion Middleware安装因R12.2已内置WebLogic重复安装会冲突最关键的隐藏参数是-logfile必须指定完整路径-logfile /u02/fs1/inst/apps/PROD_ebsdb/logs/appl/clone/clone.log因为adcfgclone默认日志在/tmp而/tmp可能被清理导致故障时无日志可查。我坚持把所有日志存到/u02/fs1/inst下与应用文件同生命周期。4.3 WebLogic域配置AdminServer与Managed Server的端口策略adcfgclone执行后WebLogic域位于/u02/fs1/FMW_Home/user_projects/domains/EBS_domain_PROD。此时需手动验证AdminServer状态cd /u02/fs1/FMW_Home/user_projects/domains/EBS_domain_PROD ./startWebLogic.sh tail -f nohup.out等待出现“ADMIN SERVER STARTED IN RUNNING MODE”即成功。但真正麻烦的是Managed Serveroacore、oafm、forms等。它们默认端口是oacore8000, oafm8001, forms8003。问题在于若服务器已有其他服务占用8000adstrtal会静默失败。解决方案是修改端口映射编辑/u02/fs1/inst/apps/PROD_ebsdb/appl/admin/PROD_ebsdb_wl.properties修改s_oacore_http_port8010 s_oafm_http_port8011 s_forms_http_port8013然后执行autoconfigcd /u02/fs1/EBSapps/appl/ad/12.0.0/bin ./adautocfg.sh \ contextfile/u02/fs1/inst/apps/PROD_ebsdb/appl/admin/PROD_ebsdb.xml \ logfile/u02/fs1/inst/apps/PROD_ebsdb/logs/appl/autocfg.log实操心得autoconfig执行后必须检查/u02/fs1/inst/apps/PROD_ebsdb/appl/admin/PROD_ebsdb.xml里 标签是否已更新。曾有个客户autoconfig成功但端口未变原因是contextfile路径输错脚本用了旧xml——这种错误不会报错只会静默失效。5. 验证与故障排查从登录首页到后台进程的立体诊断5.1 登录验证不只是URL能打开而是看三个核心进程访问https://ebs.yourdomain.com:8000/OA_HTML/AppsLogin.jsp只是第一步。真正验证成功需确认三件事数据库连接在应用服务器执行sqlplus apps/welcome123PROD能登录即通WebLogic状态ps -ef | grep java | grep AdminServer和grep oacore必须各有一条进程并发管理器登录EBS后导航到“系统管理员 并发 管理器 管理器”查看Internal Manager状态为“正常”且“已处理请求数”每分钟递增若首页打开但报错“Unable to generate forwarding URL”大概率是$COMMON_TOP/html/下的Apache配置未生效。检查/u02/fs1/inst/apps/PROD_ebsdb/appl/admin/scripts/adoacorectl.sh是否执行成功该脚本启动Apache子进程。5.2 常见故障速查表按错误代码精准定位错误代码典型现象根本原因解决方案ORA-01017adconfig报用户名密码错误APPS schema密码与数据库不一致执行ALTER USER apps IDENTIFIED BY welcome123;重置密码再重跑adconfigAD_ZD_PREPARE_ERRORadop phaseprepare失败/u02/fs2目录权限不足applmgr无写入权chown -R applmgr:dba /u02/fs2; chmod -R 755 /u02/fs2FRM-92101表单无法加载Java Runtime Environment版本不匹配R12.2要求JRE 1.6.0_45或1.7.0_51执行java -version确认替换$COMMON_TOP/java/jreHTTP-404/OA_HTML/路径报404Apache DocumentRoot指向错误检查/u02/fs1/inst/apps/PROD_ebsdb/appl/admin/scripts/adoacorectl.sh里DOCROOT变量应为/u02/fs1/inst/apps/PROD_ebsdb/appl/oa_html5.3 日志分析黄金法则三日志联动定位法R12.2故障排查必须同时看三个日志应用层日志/u02/fs1/inst/apps/PROD_ebsdb/logs/appl/techstack/WebLogic启动日志数据库日志/u01/app/oracle/diag/rdbms/prod/PROD/trace/alert_PROD.log数据库告警日志EBS日志/u02/fs1/inst/apps/PROD_ebsdb/logs/appl/ad/adop、adconfig等工具日志例如adop phaseapply卡住时先看adop日志末尾的“ERROR”行再根据报错中的SQLID如sql_idabc123def456去alert_PROD.log搜“sql_idabc123def456”最后在techstack日志里找对应时间戳的“OutOfMemoryError”。三日志时间戳对齐就能锁定是内存不足、SQL锁表还是JVM配置错误。最后分享一个小技巧在/u02/fs1/EBSapps/appl/ad/12.0.0/bin/下创建alias把常用命令简化alias adopperl $AD_TOP/patch/115/bin/adop.pl alias adcmperl $AD_TOP/patch/115/bin/adcmctl.sh alias adstpperl $AD_TOP/patch/115/bin/adstpall.sh这样输入adop就可以直接执行省去每次cd和长路径每天节省12分钟——12年就是876小时够重装36套环境。
返回列表