简介:一份自编的Oracle Data Integrator 12cR1(12.1.3.0.0)安装过程详解文档,面向需要部署ODI的数据工程师、中间件管理员和ETL开发者。内容不仅列出两个必须下载的安装文件(ODI主程序和Fusion Middleware Infrastructure)及其用途,还区分了JEE企业版安装与独立安装的前提条件,并给出基于JDK命令行启动安装程序的具体步骤。文档同时覆盖ODI Studio的后续配置,包括Operator、Topologies、Interface、Mapping以及知识模块(KM)的核心概念,便于构建完整的数据集成环境。安装过程中容易踩坑的数据库连接、用户权限、中间件服务等设置也逐一说明。包体为1个docx文档,大小2.23MB,内容按安装前准备、中间件安装、ODI安装、Studio配置分段编写,结构清晰,适合边看边操作。目前已有264人学习下载,适合初学ODI安装或希望梳理部署流程的读者参考。
1. 装 ODI 12cR1 开局的第一个坑:Infrastructure 没装就想装 ODI
大部分第一次碰 Oracle Data Integrator 12cR1 的人,都会在下载页面犯一个低级错误:看到fmw_12.1.3.0.0_odi_Disk1_1of1.zip就开装,等安装向导跑到一半,发现缺失 Fusion Middleware Infrastructure 组件时已经晚了。ODI 12cR1(12.1.3.0.0)这个版本很特殊,它的企业版(JEE 模式)必须依赖 Oracle Fusion Middleware Infrastructure 提供 WebLogic 和公共组件,单独跑 ODI 的 jar 只能装成独立模式。也就是说,下载、解压、安装顺序这三步里只要错一步,后面就会卡在 Prerequisite 检测上。
这篇文章是我实际移植 ODI 12.1.3.0.0 环境时记录的完整安装笔记,涵盖了 JDK 版本选择、两个 jar 的安装顺序、odi64.exe 首次指定 JDK home 的细节,以及装完后怎么把 Studio 跑起来。如果你是第一次做 ODI 安装配置,建议从上到下读;如果已经翻过车,直接翻到第 5 章对照问题。
2. 环境与版本选择:JDK 位数、端口占用和下载文件核对
2.1 JDK 版本:ODI 12.1.3.0.0 认证的是 64 位 JDK 1.7
正文里写得很直白:“安装 ODI 之前需要安装 1.7 以上版本的 JDK”。但你如果真拿 JDK 1.8 的最新版去装,大概率会在 Prerequisite Check 阶段被地方报 “Unsupported Java Version” 或者干脆卡在启动 jar 的瞬间。ODI 12cR1 12.1.3.0.0 官方认证用的是 64 位 JDK 7u80,这是这个版本最稳的组合。
我一般会准备两个 JDK 目录,避免和其他中间件产品打架:
# Windows 场景下的目录建议,避免 Program Files 里的空格 D:\Java\jdk1.7.0_80 # 装 ODI 专用 D:\Java\jdk1.8.0_211 # 给其他常规 Java 应用用,不参与 ODI 安装这里有个容易被忽略的点:java -jar 启动安装向导时,用的是 PATH 里第一个 java.exe,不是 JAVA_HOME 所以如果你机器上同时装了多个 JDK,必须先确认命令行里 java -version 输出的是哪个版本。
java -version # 期望输出带有 Java(TM) SE Runtime Environment (build 1.7.0_80-b15) 字样确认完版本后,再把 JAVA_HOME 和 PATH 临时指向 JDK 7,虽然安装向导不强制读 JAVA_HOME,但后面 RCU 建库和启动 WebLogic 域会用,先立好这个环境变量能少踩一次翻车点。
2.2 两个压缩包:目录规划决定后面是否会踩路径空格坑
从 Oracle 官方下载页面拿到的两个文件需要核对文件名,别被下载器改名带偏了:
fmw_12.1.3.0.0_odi_Disk1_1of1.zip fmw_12.1.3.0.0_infrastructure_Disk1_1of1.zip解压后分别得到:
fmw_12.1.3.0.0_odi.jar fmw_12.1.3.0.0_infrastructure.jar这两个 jar 不放在同一个目录也行,但我建议单独建一个D:\ODI_Install统一放安装介质,避免在命令行里来回跳路径时手滑。更关键的是规划安装目标目录。ODI 安装程序对含空格的路径非常不友好,C:\Program Files 这种路径在后续 odi64.exe 定位 JDK home 和启动脚本时会出现引号解析问题。生产上我一般统一放 D:\Oracle 下:
D:\Oracle\Middleware # Fusion Middleware 主目录 D:\Oracle\Middleware\Oracle_ODI_1 # ODI 组件实际安装目录端口方面,ODI JEE 安装会部署 WebLogic Admin Server 和托管服务器,常见占用是 7001、8001。装之前先清一下本机端口占用,避免安装完配置域时启动失败还要回头查玄学问题。RMB 事件在 Windows 上可以用 netstat -ano 快速确认:
netstat -ano | findstr "7001 8001"2.3 数据库准备:Repository 依赖什么
ODI 12cR1 的 Master Repository 和 Work Repository 必须落在数据库里,官方支持 Oracle、SQL Server、MySQL、DB2。实践中九成场景是拿 Oracle 做 repository,版本至少是 11.2.0.4 或 12c。装 ODI 之前不用先建库,但要把下一步要用的数据库账号和表空间规划好。常见做法是先给 ODI 单独开一个实例用户,而不是复用系统和 sys 账号。比如建一个 ODI_REPO 的用户,授予 CONNECT、RESOURCE、DBA 角色,后面 RCU 建 schema 时能用。
磁盘空间这里多说一句:两个压缩包加起来大约 2.5G,解压后再占一倍,安装后 Oracle 主目录还会膨胀一次,建议预留 20G 以上空间。之前有人装到一半报磁盘满,然后又得删缓存重来,属于冤枉路。
3. 安装 Oracle Fusion Middleware Infrastructure:先打地基再装 ODI
3.1 用 java -jar 启动安装向导,而不是双击 jar
进入 JDK 7 的 bin 目录,执行:
cd /d D:\Java\jdk1.7.0_80\bin java -jar D:\ODI_Install\fmw_12.1.3.0.0_infrastructure.jar这条命令从 JDK bin 目录启动,而不是直接把 jar 拖到 java.exe 上,是为了保证用的是 JDK 而不是 JRE。安装向导启动后第一步会做 Prerequisite Check,这里会扫描 JDK 版本、操作系统位数、磁盘空间和临时目录权限。如果卡在这一步,回 2.1 检查 java -version。
参数说明:-jar 是 Java 的标准启动参数,后面紧跟的是 jar 包绝对路径。路径里如果有中文或者空格,先 cd 到目录再用相对路径反而更稳。
安装位置和安装类型的取舍:Infrastructure 安装界面会让你选 Oracle Home 和安装类型。我一般只选 “Install and Configure” 或者 “Install Only” 中的后者。原因很简单:ODI 安装只是把组件放进目录,WebLogic 域的创建和配置要等 ODI Agent 一起做。提前让 Infrastructure 配置好域,后面还得在 OD 域里手动加 ODI 组件,事情反而绕。
关键界面选择记录如下:
Install Location: D:\Oracle\Middleware Install Type: Oracle Home这一步还会弹出一个 “Oracle Fusion Middleware Infrastructure” 组件树,默认全选即可。120 组的公共组件(比如 oracle_common、wlserver)都会写到 D:\Oracle\Middleware 下。
3.2 静默安装:脚本化部署时怎么传参数
如果是在无图形界面的服务器上装,或者需要批量给多台机器部署,可以改用静默模式。先去图形界面跑一次记录下响应文件,或者手写 rsp 文件:
java -jar D:\ODI_Install\fmw_12.1.3.0.0_infrastructure.jar -silent \ -responseFile D:\ODI_Install\infrastructure.rsp \ -log D:\ODI_Install\infra_install.log \ -logLevel CONFIG静默安装的 rsp 文件里核心参数是:
DECLINE_SECURITY_UPDATES=true SECURITY_UPDATES_VIA_MYORACLESUPPORT=false ORACLE_HOME=D:\\Oracle\\Middleware INSTALL_TYPE=Oracle HomeDECLINE_SECURITY_UPDATES 这行很重要,如果留空或写 false,安装程序会联网请求补丁更新,在内网环境直接卡死。ORACLE_HOME 里的路径分隔符在 Windows 下必须写成双反斜杠,我因为这个踩过隔夜跑批失败的坑。安装完成后要确认日志尾部出现 “Installation completed successfully” 而不是 “completed with warning”,后者经常是磁盘空间不足或者临时目录权限问题。
3.3 装完 Infrastructure 后立即检查什么
装完不要急着装 ODI,先确认关键目录和版本文件写好了:
dir D:\Oracle\Middleware\oracle_common dir D:\Oracle\Middleware\wlserver重点看 wlserver 目录是否存在,这是 ODI JEE 模式跑 Agent 的 WebLogic 容器。如果 wlserver 缺失,说明 Infrastructure 只装了一半,ODI 安装向导在 Prerequisite 阶段会直接报 “Missing component” 然后终止。这时候的后悔药是把安装日志翻出来看有没有 ERROR 级记录:
findstr /i "error" D:\ODI_Install\infra_install.log有些人的习惯是装完直接清掉日志,这不是好习惯。ODI 整套安装牵扯数据库、WebLogic、公共组件三层结构,安装日志是排查第一个报错的黑匣子。我一般会把日志归档到 D:\Oracle\Install_Logs 下,和安装介质放一起,半年后来看还是有用。
4. 安装 Oracle Data Integrator 本体:向导、静默参数与 odi64.exe 的 JDK 定位
4.1 同样是 java -jar,但安装类型的选择决定你后面的路
Infrastructure 装完,环境地基已经就位。接下来安装 ODI 本体:
cd /d D:\Java\jdk1.7.0_80\bin java -jar D:\ODI_Install\fmw_12.1.3.0.0_odi.jar进入安装向导后,ODI 会给出两个安装类型:Standalone 和 Enterprise Edition。这个选择很关键。
- Standalone:不依赖 WebLogic,装完后本地起一个独立 Agent,适合单机跑接口和本地调试。如果你只装了 ODI 的 jar 没装 Infrastructure,向导会自动限制你选这个。
- Enterprise Edition(JEE):需要连接前面装的 Infrastructure,提供 ODI Console Web 界面、扩展 Agent 和集群能力。生产环境以及要接调度系统定时跑批的环境,选这个。
我实践中的选择逻辑很简单:只要不是临时验证,一律选 Enterprise Edition。原因在于 ODI 的调度维度和接口管理往后都要靠 Agent,Standalone 的 Agent 重启后状态位不持久,出了故障排查起来多一道工序。JEE 模式下 ODI 组件树会显示 ODI Studio、ODI Agent、ODI Console、SDK 等子组件,勾选时保守一点,把 Agent 和 Console 加上,SDK 按需再加。
安装位置填写:
Oracle Home: D:\Oracle\Middleware和 Infrastructure 共用同一个 Oracle Home 目录,ODI 组件会写到 Oracle_ODI_1 下,这是 Oracle 中间件安装目录管理的常规套路。
4.2 静默安装 ODI 的 rsp 参数差异
ODI 的响应文件比 Infrastructure 复杂一点,多了组件选择段:
java -jar D:\ODI_Install\fmw_12.1.3.0.0_odi.jar -silent \ -responseFile D:\ODI_Install\odi.rsp \ -logLevel CONFIG \ -log D:\ODI_Install\odi_install.log对应的 rsp 文件核心内容:
DECLINE_SECURITY_UPDATES=true SECURITY_UPDATES_VIA_MYORACLESUPPORT=false ORACLE_HOME=D:\\Oracle\\Middleware INSTALL_TYPE=Enterprise Edition SELECTED_COMPONENTS=oracle.odi.agent,oracle.odi.console,oracle.odi.studio注意 INSTALL_TYPE 必须和已安装的 Infrastructure 匹配。如果 rsp 里写 StandaloneIA,而前面的 ODI_WAS 选的是 Enterprise,安装时会报内部错误。SELECTED_COMPONENTS 的组件 ID 可以在图形界面安装时从日志里抠出来,不同小版本可能有细微差异,不要凭记忆硬写。
4.3 odi64.exe 第一次启动:指定 JDK home 是在填安装验证
安装完成后的正常路径是:
D:\Oracle\Middleware\Oracle_ODI_1\odi\studio\bin\odi64.exe双击运行,第一次会弹出窗口要求指定 JDK home 路径,这不是 ODI Studio 在问你 JDK 装在哪,而是它要确认当前运行环境有没有被 JRE 或别的 JDK 干扰。这里填 JDK 根目录即可,例如:
D:\Java\jdk1.7.0_80注意不要填到 bin 子目录,填到 bin 会导致 Studio 启动时找不到 lib 目录。还有一个非常常见的坑:如果之前设置过 ORACLE_HOME 环境变量指向了别的 Oracle 产品(比如 Oracle 数据库客户端),odi64.exe 启动时会去读这个变量,导致 JVM 加载失败。出现这种情况时,先清掉当前会话的 ORACLE_HOME:
set ORACLE_HOME=然后再从 odi64.exe 启动。如果你用的是 PowerShell,用:
Remove-Item Env:ORACLE_HOME这个细节我在两套机器上踩过不同的表现:一套直接报 “Error: could not open ...\jvm.dll”,另一套闪退没任何提示。第一次看到这问题觉得是玄学,后来对照日志才发现全是因为 ORACLE_HOME 指向了一个带 bin 的路径。从那以后,我每次启动前都先 echo %ORACLE_HOME% 确认它为空。
Java home 确认页后面还会问是否关联现有的 Master Repository。如果是新环境,选 “Create a new Master Repository”,随后填数据库连接信息。这里提醒一点:Master Repository 的 schema 名不要带特殊符号,密码也不要带 @,否则后面 RCU 和 Studio 连接时容易在 JDBC URL 解析上出问题。
5. ODI 安装避坑手册:五个能让你卡一整天的实战问题
5.1 安装顺序颠倒:先装 ODI 后装 Infrastructure
现象:直接跑 fmw_12.1.3.0.0_odi.jar,安装向导在 Prerequisite Check 阶段标红,提示找不到 Fusion Middleware Infrastructure,无法继续 Enterprise 模式安装。部分人选择退回 Standalone,之后用到 ODI Console 才发现缺组件,还要反攻重装。
原因:ODI JEE 安装时要在 Oracle Home 里检测 wlserver 和 oracle_common。这两个是 Infrastructure 安装产物,文件不存在就打不过前置检查。
解决:按顺序重来。先装 Infrastructure,再装 ODI,两者共用同一个 ORACLE_HOME。如果已经装成 Standalone,不用删 ODI 就能在 ORACLE_HOME 补装 Infra,但组件注册信息可能不全,不如卸载干净后重装省心。
5.2 JDK 版本符合 “1.7 以上” 但安装中途报错
现象:JDK 是 1.8.0_281,向导能启动,但走到 30% 时报 “Fatal error during installation”,日志里出现 UnsupportedClassVersionError 或者 JVM 崩溃。
原因:ODI 12.1.3.0.0 的安装程序虽然是 Java 程序,但它依赖的某些中间件组件类在 JDK 8 较新版本上存在兼容问题。官方认证基线是 JDK 7u80,所谓 “1.7 以上” 不等于 “JDK 8 最新没问题”。
解决:卸载 JDK 8 或在其并行安装 JDK 7u80,安装全程用 JDK 7 启动 jar,并把它写到 JAVA_HOME。安装完成后 odi64.exe 的 JDK home 也指向 JDK 7,避免运行期出现 NoClassDefFoundError。
5.3 ORACLE_HOME 变量干扰导致 odi64.exe 闪退
现象:双击 odi64.exe,窗口闪一下就没了;管理员权限运行也一样。
原因:当前系统环境变量里存在 ORACLE_HOME,指向 Oracle 数据库安装路径。ODI Studio 启动脚本会拼接 %ORACLE_HOME%\jdk 去找 JVM,拼出来一个不存在的目录,于是 JVM 初始化失败。
解决:启动前确认并清空 ORACLE_HOME,重启命令行再启动 odi64.exe。更稳妥的做法是把 ORACLE_HOME 这个变量直接删掉,用 ORACLE_BASE 替代数据库所需配置。单机装过数据库又装 ODI 的机器,这种环境冲突很常见。
5.4 RCU 建库失败,报 ORA-01017 或 ORA-01919
现象:在 RCU(Repository Creation Utility)里填写数据库连接后,报用户名密码无效,或者角色缺失。
原因:常见两类。第一类是连接的数据库账号是普通用户,没有建 schema 的表空间权限;第二类是密码里有 @ 等符号,被 JDBC URL 解析成连接属性分隔符。
解决:先用数据库管理员创建一个专门账号,授予 RESOURCE、CONNECT、DBA 角色(单机测试环境给 DBA 省事,生产按最小权限给)。密码设置只用字母数字。建库成功后再进入 RCU 选择 ODI 组件,注意组件前缀默认是 DEV,也可以改成自己的前缀,前缀不能超过 8 个字符。
5.5 WebLogic 域配好后 Admin Server 起不来,日志报端口占用
现象:配置完 WebLogic 域,双击 startWebLogic.cmd,控制台输出 Address already in use: 7001。
原因:本机之前装过别的中间件,或者上一个 ODI 实例没关干净,7001 端口被占用。
解决:先用 netstat 查占用进程,确认没有重要服务后强制关闭对应 PID,或在域配置里把 Admin Server 的监听端口改到 7101。改端口要同步改 ODI Console 的连接地址,不然控制台登录时找不到服务器。
6. 装完怎么验证:从 Master Repository 到第一个接口跑通
验证 ODI 安装完成度,最廉价的办法不是看安装日志,而是走一遍 Studio 连接和接口调度的闭环。先把安装目录结构确认一下,所有关键组件缺一不可:
D:\Oracle\Middleware ├── oracle_common # Infra 公共组件 ├── wlserver # WebLogic Server └── Oracle_ODI_1 ├── odi │ ├── agent # ODI Agent 主程序 │ └── studio │ └── bin │ └── odi64.exe └── odi-sdk # 如果勾选了 SDK启动 odi64.exe 并成功进入登录界面,只能说明 Studio 能跑,不等于 ODI 完整可用。真正的验证从连接 Repository 开始。在 Topology Navigator 里配置 Master Repository 登录信息,JDBC 驱动选 Oracle,连接串格式如下:
jdbc:oracle:thin:@//127.0.0.1:1521/ORCL然后新建一个物理代理,把本机 Agent 端口指到 20910,这样后面接口任务才能真正被执行引擎拉起来。Studio 里创建一张测试接口,从一个测试表抽取数据到另一个表,跑完以后去 Operator Navigator 查看 Session 日志,状态是 Success 才是整条链路打通。这一步能暴露一大半隐藏问题:JDBC 驱动缺失、Agent 连不上数据库、Repository schema 权限不够等。
如果第一步就卡在登录界面,回头检查列表:JDK home 是否指向 JDK 7、ORACLE_HOME 是否残留、RCU 建的三个 schema(Master、Work、Supervisor)是否都在同一个实例下。从那以后我每次装完 ODI 都强制自己走一遍 Mini Interface 验证,不验证不签收。希望帮到你。
本文还有配套的精品资源,点击获取