
简介这份PDF文档面向具备Linux与Oracle数据库基础的技术人员尤其是负责Oracle EBS系统安装、配置与维护的IT专业人员用于指导生产环境下Oracle EBS R12.1.1至R12.1.3的部署与升级。内容覆盖Oracle Linux系统安装与配置、EBS安装与升级、数据库升级以及Oracle Application Server 10g的安装升级并针对常见问题给出解决方案从操作系统准备、EBS安装、数据库配置到应用服务器部署形成完整链路。资源包共1个PDF文件大小约844KB便于随身查阅与打印对照。目前已有950人学习下载适合需要系统掌握EBS生产环境搭建与升级流程的读者参考。文档目录结构清晰按Linux OS安装、在线升级与软件安装、OS环境配置等模块逐层展开并包含ssh服务配置、SecureCRT与PUTTY登录、VNC配置、忘记root密码处理、挂载新盘及格式化等实操细节可帮助读者在真实部署中快速定位关键步骤、规避常见配置陷阱提升安装与升级的成功率。1. Oracle EBS R12.1 生产环境部署为什么 Linux OS 配置决定了后面所有事很多团队第一次上 Oracle EBS R12.1注意力全在数据库迁移和系统安装上结果 Linux OS 层没配好后面跑 adpatch 卡住、AutoConfig 报错、并发管理器起不来回头查三天才发现是内核参数或用户环境变量的问题。Oracle EBS R12.1 是一个典型的三层架构 ERP 套件数据库层跑 Oracle Database 11gR2应用层跑 Forms、Apache、Concurrent Manager中间靠大量脚本和配置文件串联。它对操作系统的要求不是“能装就行”而是内核信号量、共享内存、文件句柄、端口范围、用户 Shell 限制都要精确匹配。这篇内容面向需要在生产环境从零部署或从旧环境升级到 R12.1 的 DBA 和系统管理员覆盖 Linux OS 配置、EBS 系统安装、数据库迁移三条主线。如果你正在搜“Oracle EBS R12.1 安装”“Linux OS 配置”“数据库迁移”这些词说明你已经意识到这不是一个单点操作而是一条链。链上任何一环松了后面就是血泪经验。2. 生产环境 Linux OS 配置从内核参数到用户环境的完整清单2.1 为什么 EBS R12.1 对 OS 层这么敏感Oracle EBS R12.1 的应用层大量依赖 Oracle Application Object Library 和 AD Utilities这些工具在运行时会 fork 大量子进程、创建共享内存段、打开成百上千个文件描述符。如果 Linux 内核的 semmni、semmsl、shmmax、file-max 这些参数低于 Oracle 官方推荐值表现不是直接报错而是随机性失败adop 阶段卡死、Forms 进程启动超时、并发请求状态一直挂起。更隐蔽的是有些问题在测试环境不出现因为测试环境并发低、数据量小一到生产就翻车。我一般会在安装前先确认三件事OS 版本是否在 Oracle 认证矩阵内、内核参数是否按 R12.1 的 Recommended Patch List 调过、oracle 和 applmgr 两个用户的 Shell 限制是否放开。R12.1 官方支持 RHEL 5/6、OEL 5/6 等版本如果你用的是 Ubuntu 或麒麟系统虽然内核层面兼容但 Oracle 不提供认证遇到问题只能自己排查。生产环境不建议冒险。2.2 内核参数与资源限制的具体配置下面是一份我常用的/etc/sysctl.conf追加内容适用于 R12.1 单节点或双节点部署。参数值参考 Oracle Database 11gR2 和 EBS R12.1 的安装前提条件生产环境内存 64GB 以上时可以按比例放大。# /etc/sysctl.conf 追加 kernel.sem 256 32000 100 142 kernel.shmmax 68719476736 kernel.shmall 4294967296 kernel.shmmni 4096 fs.file-max 6815744 net.ipv4.ip_local_port_range 9000 65500 net.core.rmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_default 262144 net.core.wmem_max 1048576执行sysctl -p生效。这里的关键参数含义kernel.sem四个值分别是 SEMMSL、SEMMNS、SEMOPM、SEMMNIEBS 的并发管理器会大量使用信号量SEMMNI 低于 142 时并发管理器可能起不来。kernel.shmmax要大于 SGA 目标值11gR2 的 SGA 通常设 20GB 到 40GB所以 shmmax 给 64GB 是留余量。fs.file-max是系统级文件句柄上限EBS 应用层进程多低于 6815744 时可能出现“Too many open files”。用户级限制写在/etc/security/limits.conf# /etc/security/limits.conf 追加 oracle soft nofile 65536 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 applmgr soft nofile 65536 applmgr hard nofile 65536 applmgr soft nproc 16384 applmgr hard nproc 16384nofile 和 nproc 两个值必须同时改 soft 和 hard只改 soft 的话用户重新登录后 hard 限制仍然卡着。改完后用ulimit -a验证注意要重新登录才生效su - oracle切换用户不算重新登录要用ssh oraclelocalhost或重新开终端。2.3 用户、目录与依赖包准备创建两个操作系统用户oracle 用于数据库层applmgr 用于应用层。两个用户的主组可以不同但建议都加入 dba 组方便权限管理。groupadd dba groupadd oinstall useradd -g oinstall -G dba oracle useradd -g oinstall -G dba applmgr passwd oracle passwd applmgr目录规划按 Oracle 最佳实践分开挂载点避免数据库增长把应用层日志分区撑满mkdir -p /u01/oracle/db/11.2.0 mkdir -p /u01/oracle/app/12.1.0 mkdir -p /u02/oradata mkdir -p /u03/redo chown -R oracle:oinstall /u01/oracle/db /u02/oradata /u03/redo chown -R applmgr:oinstall /u01/oracle/app chmod -R 775 /u01/oracle依赖包方面RHEL/OEL 6 需要安装的 rpm 包括 binutils、compat-libstdc、gcc、glibc、libaio、libgcc、libstdc、make、sysstat、unixODBC 等。用 yum 批量装yum install -y binutils compat-libstdc-33 gcc gcc-c glibc glibc-common \ glibc-devel libaio libaio-devel libgcc libstdc libstdc-devel make \ sysstat unixODBC unixODBC-devel pdkshpdksh 在 RHEL 6 上可能被 ksh 替代EBS 的某些脚本依赖 ksh 语法如果 pdksh 装不上就装 ksh 并做软链接。这一步不做的话后面运行 Rapid Install 时可能报“shell not found”。3. Oracle EBS R12.1 系统安装Rapid Install 的实操路径与参数选择3.1 安装前的数据库准备与 Rapid Install 启动R12.1 的 Rapid Install 可以一次性装数据库和应用层也可以分阶段装。生产环境我建议分阶段先装数据库层打好 11gR2 的最新补丁再装应用层。这样数据库迁移时更可控。假设数据库已经装好并创建了 EBS 需要的表空间和用户接下来启动 Rapid Install。把 R12.1 的安装介质解压到/stage/ebs121进入startCD/Disk1/rapidwiz目录cd /stage/ebs121/startCD/Disk1/rapidwiz ./rapidwizRapid Install 是 Java 图形界面如果没有 X11 转发可以用静默模式。生产环境我一般用静默模式加响应文件避免图形界面超时断开导致安装中断。响应文件模板在$START_CD/response目录下复制一份修改关键参数cp /stage/ebs121/startCD/Disk1/rapidwiz/response/ebs121.rsp /stage/ebs121/ebs121_prod.rsp需要修改的参数包括参数说明生产建议值s_dbSid数据库 SIDPRODs_dbHome数据库 ORACLE_HOME/u01/oracle/db/11.2.0s_appsPasswordAPPS 密码强密码记录到密码管理工具s_systemPasswordSYSTEM 密码强密码s_hostname应用层主机名生产主机 FQDNs_domain域名公司内部域名s_portPool端口池起始值默认 0生产建议从 10000 开始避免冲突静默安装命令./rapidwiz -silent -responseFile /stage/ebs121/ebs121_prod.rsp安装过程会持续 2 到 4 小时取决于磁盘 IO。期间会创建数据库实例、跑 AutoConfig、启动应用服务。如果中途失败日志在$ORACLE_HOME/../oraInventory/logs和/u01/oracle/app/12.1.0/admin/log下先看 rapidwiz 的日志再决定是否重跑。3.2 安装后的必做检查与 AutoConfig 验证Rapid Install 跑完后不能直接交给业务用必须做一轮验证。第一步是确认应用层服务状态cd /u01/oracle/app/12.1.0 source EBSapps.env run adop -statusadop -status会输出当前 adop 阶段和补丁周期状态。如果是全新安装应该显示“No adop session in progress”。然后检查并发管理器cd $ADMIN_SCRIPTS_HOME ./adcmctl.sh status apps并发管理器状态应该是“running”。如果显示“not running”先看$APPLRGF/PROD_主机名/log下的 cm 日志常见原因是数据库连接串不对或 APPS 密码过期。AutoConfig 是 EBS 的配置引擎安装后必须跑一次验证cd $ADMIN_SCRIPTS_HOME ./adautocfg.sh输入 APPS 密码后AutoConfig 会重新生成所有配置文件。如果报错重点看$INST_TOP/admin/log下的 AutoConfig 日志常见错误是s_dbSid和实际数据库 SID 不一致或者s_hostname解析不到。3.3 从旧环境升级到 R12.1 的路径选择如果是从 11i 升级到 R12.1路径不是直接跑 Rapid Install而是先升级到 R12.1 的基础版本再打 12.1.3 的补丁。升级前必须做一次全量备份包括数据库冷备和应用层文件系统快照。升级过程分两大阶段数据库层用 AutoUpgrade 或手动跑 catupgrd.sql 升级到 11gR2应用层用 Rapid Install 的升级模式。我一般会先在克隆环境跑一遍完整升级记录每个阶段的耗时和报错再在生产环境执行。升级中最容易翻车的是数据库字符集和 NLS 设置如果源库是 US7ASCII 而目标要求 AL32UTF8必须在升级前做字符集转换否则升级后中文乱码后悔药都来不及吃。4. 数据库迁移到 EBS R12.1 环境表空间、字符集与数据同步4.1 迁移前的表空间规划与数据量评估EBS R12.1 的数据库层有大量标准表空间SYSTEM、SYSAUX、UNDOTBS、TEMP、APPS_TS_TX_DATA、APPS_TS_TX_IDX、APPS_TS_SEED、APPS_TS_INTERFACE、APPS_TS_MEDIA、APPS_TS_ARCHIVE、APPS_TS_SUMMARY、APPS_TS_NOLOGGING、APPLSYSPUB、APPLSYS、APPS 等。迁移前先查源库各表空间大小SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024/1024, 2) AS size_gb FROM dba_data_files GROUP BY tablespace_name ORDER BY size_gb DESC;目标环境按 1.5 倍源库大小规划APPS_TS_TX_DATA 和 APPS_TS_TX_IDX 通常占 70% 以上。如果源库有大量历史数据迁移前先做归档清理把不需要的数据留在源库只迁活跃数据。这一步能省下大量迁移时间和存储成本。4.2 用 Data Pump 做跨库迁移的实操步骤跨平台或跨版本迁移Data Pump 是最稳的方式。在源库创建目录对象并导出CREATE OR REPLACE DIRECTORY dpump_dir AS /u01/dump; GRANT READ, WRITE ON DIRECTORY dpump_dir TO system;导出命令expdp system/passwordsource_db \ directorydpump_dir \ dumpfileebs_full_%U.dmp \ logfileebs_full_exp.log \ parallel4 \ schemasAPPS,APPLSYS,APPLSYSPUB \ excludeSTATISTICSparallel4根据 CPU 核数调整生产环境 16 核以上可以给 8。excludeSTATISTICS跳过统计信息迁移后重新收集避免导出时间过长。导出完成后把 dmp 文件传到目标库用 impdp 导入impdp system/passwordtarget_db \ directorydpump_dir \ dumpfileebs_full_%U.dmp \ logfileebs_full_imp.log \ parallel4 \ schemasAPPS,APPLSYS,APPLSYSPUB \ transformsegment_attributes:ntransformsegment_attributes:n让导入时忽略源库的存储属性按目标库默认表空间分配。导入后必须跑utlrp.sql编译无效对象然后执行FND_CONC_CLONE.SETUP_CLEAN清理并发管理器数据。4.3 迁移后的数据校验与 EBS 层验证数据导入完成不代表迁移成功必须做三层校验。第一层是对象数量对比-- 源库和目标库分别执行对比结果 SELECT owner, object_type, COUNT(*) FROM dba_objects WHERE owner IN (APPS,APPLSYS,APPLSYSPUB) GROUP BY owner, object_type ORDER BY owner, object_type;第二层是无效对象检查SELECT owner, object_name, object_type FROM dba_objects WHERE status INVALID AND owner IN (APPS,APPLSYS,APPLSYSPUB);如果有大量无效对象先跑?/rdbms/admin/utlrp.sql再查。第三层是 EBS 应用层验证登录 EBS 前端跑一个并发请求打开一个 Forms 界面确认没有报错。如果 Forms 打开报“FRM-92050”通常是应用层和数据库层的连接配置不对检查tnsnames.ora和$INST_TOP/ora/10.1.2/network/admin下的配置。5. 部署与迁移中的避坑排查5 个真实翻车场景5.1 坑一adop 阶段卡在“Waiting for workers”现象adop 执行到某个 phase 后长时间不动日志显示“Waiting for workers to complete”。原因通常是并发管理器没启动或者数据库有大量锁等待。解决先查adop -status确认当前 phase再查数据库v$session看是否有长时间运行的会话阻塞最后确认并发管理器状态必要时重启adcmctl.sh。5.2 坑二AutoConfig 报“Unable to determine JDK version”现象运行 adautocfg.sh 时报 JDK 版本识别失败。原因一般是$JAVA_HOME指向了错误的 JDK或者 JDK 版本不在 EBS R12.1 支持列表内。R12.1 要求 JDK 1.6 或 1.7如果系统默认 JDK 是 1.8 或更高AutoConfig 会拒绝。解决在$APPL_TOP/admin/adconfig.txt中显式指定 JDK 路径或者用updatejdk工具切换。5.3 坑三数据库迁移后中文乱码现象迁移后 EBS 界面中文显示为问号或乱码。原因通常是源库和目标库的 NLS_LANG 或字符集不一致。解决迁移前确认源库SELECT * FROM nls_database_parameters WHERE parameterNLS_CHARACTERSET目标库必须一致。如果源库是 ZHS16GBK 而目标库是 AL32UTF8必须在迁移前做字符集转换不能直接 impdp。5.4 坑四并发管理器启动后立即停止现象adcmctl.sh start 后状态显示 running几秒后变成 not running。原因可能是 APPS 密码在数据库里过期或者FND_CONCURRENT_QUEUES表里的节点信息不对。解决先查$APPLRGF/PROD_主机名/log下的 cm 日志如果是密码问题用FNDCPASS改密码如果是节点信息问题跑FND_CONC_CLONE.SETUP_CLEAN清理后重新启动。5.5 坑五Rapid Install 静默模式中途退出无报错现象rapidwiz -silent 跑了一段时间后进程消失日志没有明显错误。原因通常是响应文件里某个路径不存在或者磁盘空间不足。解决检查响应文件中所有路径是否真实存在且有写权限用df -h确认/u01、/u02、/stage剩余空间查看$ORAInventory/logs下的 installActions 日志通常会有“SEVERE”级别的记录。6. 生产环境收尾一个验证清单和我的个人习惯部署和迁移完成后我会跑一份自己的收尾清单确认环境可以交给业务。这份清单不复杂但每次都能拦住几个隐藏问题。检查项命令/操作通过标准数据库实例状态sqlplus / as sysdba后select status from v$instance;OPEN无效对象数量select count(*) from dba_objects where statusINVALID;小于 10并发管理器adcmctl.sh status appsrunningForms 服务adfrmctl.sh statusrunningApache 服务adapcctl.sh statusrunning应用层登录浏览器打开 EBS 登录页能登录无报错并发请求提交“Active Users”请求正常完成数据库备份RMAN 全备备份成功无报错最后说一个我自己的习惯每次部署或迁移完成后我会把整个环境的配置差异记录到一个文本文件里包括内核参数、用户限制、目录结构、端口分配、密码存放位置。这个文件不放在服务器上而是放在团队的密码管理工具里。下一次做补丁升级或克隆环境时这份记录能省掉大量重复排查。EBS 的部署不是一次性的活后面还有补丁、克隆、迁移、升级每一次都依赖第一次部署时留下的准确记录。希望帮到你。本文还有配套的精品资源点击获取