简介:这份文档面向数据集成工程师、中间件运维人员以及需要搭建ODI环境的中高级学习者,围绕Oracle Data Integrator 12cR1(12.1.3.0.0)的安装与初步配置展开,重点解决企业级(JEE)部署中前置组件与JDK环境容易出问题的地方。全文以步骤化方式记录了Oracle Fusion Middleware Infrastructure的先行安装、两个安装包的官方获取来源、在JDK的bin目录执行java -jar启动图形化安装程序,以及在odi64.exe中指定JDK home路径等关键环节,并补充了安装类型与安装位置的选择说明。文档还延伸到ODI Studio的启动与连接、Operator与Topologies的建立、Interfaces和Mappings的设计部署,以及知识模块(KM)的配置思路,帮助读者理解ODI环境的整体结构。资源包为1个docx文件,约2.23MB,图文对照、篇幅精炼,便于离线查阅与按步操作。目前已有265人学习,适合初次部署ODI或需要核对安装流程的读者作为实践参考。
1. 解压完两个 zip 就双击 jar 的人,八成会卡在同一个地方
ODI 安装这件事,最容易被低估的不是中间件本身有多复杂,而是顺序。Oracle Data Integrator 12cR1(12.1.3.0.0)在 Windows 上给的是一套拆成两个压缩包的介质:一个装 ODI 本体,一个装 Fusion Middleware Infrastructure。很多人把两个 zip 解压出来,对着fmw_12.1.3.0.0_odi.jar双击,屏幕上什么也不发生;换成命令行敲java -jar,又冒出一句Unable to access jarfile。这份自编文档解决的就是从「文件静静躺在硬盘里」到「ODI Studio 能连上仓库」这一整条链路:先装谁、装到哪、JDK 怎么指、装完还差哪几步才算真能用。适合三类人:第一次在企业内网装 ODI 的、要给测试环境搭一套能跑接口的、手里已经攥着这两个 jar 但拿不准自己该走企业安装还是独立安装的。
2. 两个 jar 的先后关系:企业安装与独立安装的分叉点在哪
2.1 拆开两个 zip 之后,看清谁在给谁打地基
把fmw_12.1.3.0.0_infrastructure_Disk1_1of1.zip和fmw_12.1.3.0.0_odi_Disk1_1of1.zip分别解开,得到的是两个体积接近的 jar。这两个 jar 不是平级的两个软件,而是「底座 + 上层」的关系。Infrastructure 包提供的是 Fusion Middleware 的公共运行底座:WebLogic 容器、OPSS 安全框架、MDS 元数据存储、JRF 运行时、以及后面建域要用的配置向导和 RCU。ODI 包做的是把 ODI 自己的组件——Agent、Console、Studio 的安装镜像、以及 JEE 应用——叠加到同一个 Oracle Home 上。
| 安装包 | 解压得到 | 提供什么 | 企业安装是否必装 | 独立安装是否必装 |
|---|---|---|---|---|
| Infrastructure | fmw_12.1.3.0.0_infrastructure.jar | WebLogic、OPSS、MDS、JRF、RCU、配置向导 | 必须先装 | 不需要 |
| ODI | fmw_12.1.3.0.0_odi.jar | ODI 组件、Studio 镜像、Agent、Console 应用 | 叠加在同一个 Oracle Home | 单独装一个 Home |
这里有个非常容易翻车的点:两个 jar 必须装进同一个 Oracle Home 目录。如果你装 Infrastructure 时随手填了D:\Middleware\Oracle_Home,装 ODI 时又默认到了C:\Oracle\Middleware\Oracle_Home,安装向导本身不一定会当场拦你,但后面建域的时候会找不到 ODI 模板,报出类似「没有可用的产品组件」的错。我一般的做法是先在纸上把 Oracle Home 路径定死,全程复制粘贴,不手打。
2.2 独立安装能省掉什么,代价又是什么
独立安装(Standalone Installation)只装 ODI 包,不装 Infrastructure。省掉的是 WebLogic 域、Admin Server、Node Manager、ODI Console 这一整套 JEE 运行时,安装时间从四十分钟压到十分钟以内,磁盘占用也小一大截。代价是:没有 ODI Console 网页端,没有 Enterprise Manager 集成,调度只能靠 ODI Studio 里的 Agent 或者命令行startscen,监控全靠 Operator 面板。
所以选型的分界线其实很清楚:如果只是自己本机学 ODI、跑几个接口做数据迁移验证,独立安装完全够;如果这套环境要给团队用、要挂定时调度、要让不装 Studio 的人也能在浏览器里看执行日志,那就老老实实走企业安装。原文里那句「ODI 企业安装之前必须安装 Oracle Fusion Middleware Infrastructure,独立安装则不需要」,说的就是这个分叉点,别读漏了。
2.3 装之前先核对四项环境,能省掉后面一半的返工
第一项是 JDK。ODI 12cR1 要求 1.7 或更高版本的 JDK,而且必须是完整 JDK,不是 JRE。安装器启动、odi64.exe首次运行、后面的域配置,三处都要用到它。1.7 的早期小版本在图形安装器上偶有兼容问题,我一般直接用 1.7 的较新版本或者 1.8,别拿太老的凑合。
第二项是路径。Windows 上 Oracle Home 路径里不能有中文、不能有空格、不能有括号。D:\Program Files\Oracle这种看着很规整的路径,在后续跑脚本的时候会因为引号处理出问题,D:\Oracle\odi就稳得多。
第三项是主机名。计算机名不能带下划线,只能字母数字加连字符。带下划线的主机在装 Infrastructure 阶段可能就过不去,或者装完了建域时在 OPSS 初始化那一步失败,日志里是一堆看不懂的 JNDI 异常。这是很典型的「装的时候没问题、配的时候炸」的情况。
第四项是资源。安装器解压临时文件会吃掉几个 G,Oracle Home 本身也要 8~10G,再加上后面域目录,留 20G 空间不夸张。另外先确认 7001、7002 端口没被别的服务占着,netstat -ano | findstr :7001扫一眼。
3. java -jar 跑通两次安装:命令写法、向导选项与 odi64.exe 的 JDK home
3.1 用 JDK 自带的 java 启动,不要赌 PATH
原文给的步骤是「进入 JDK 的 bin 目录,运行java -jar 路径\xxx.jar」,这个说法是对的,但很多人省略了「进入 bin 目录」这一步,直接在任意目录敲java -jar,结果调用的是系统 PATH 里那个 JRE,安装器要么起不来,要么起来之后在检查 JDK 时判定环境不合格。稳妥的写法是先cd到 JDK 的 bin 下再执行:
:: 先把 JAVA_HOME 指到完整 JDK 的根目录,不是 JRE set JAVA_HOME=C:\Java\jdk1.7.0_80 :: 关键:切到 JDK 的 bin 目录,让 java.exe 就是这个 JDK 的 cd /d %JAVA_HOME%\bin :: 启动 Infrastructure 安装器,jar 用绝对路径,路径含空格要整体加引号 java -jar D:\install\fmw_12.1.3.0.0_infrastructure.jar-jar后面的参数必须是 jar 文件的完整绝对路径,这是java -jar的硬性要求。如果你看到Unable to access jarfile fmw_12.1.3.0.0_infrastructure.jar,几乎可以肯定是路径没写全或者相对路径的当前目录不对,不是 jar 坏了。
启动前顺手验一下版本,能避免很多「装到一半提示 JDK 版本不合格」的返工:
:: 确认输出是 1.7.x 或 1.8.x,且 java -version 里的位数与系统一致 java -version64 位系统上跑 32 位 java 也能起图形界面,但后面内存参数上不去,域跑起来会各种卡。这一步三十秒,值得。
3.2 静默安装:先录一份应答文件,再批量复现
如果这套东西要在几台机器上装,图形向导点一遍两遍还行,第三遍就该烦了。Fusion Middleware 的安装器支持-record录应答文件、-silent读应答文件,这两条命令是这套安装里唯一值得提前规划的「后悔药」:
:: 第一步:带 -record 跑一遍图形安装,向导里所有选择会被写进应答文件 java -jar D:\install\fmw_12.1.3.0.0_infrastructure.jar -record -responseFile D:\install\infra.rsp :: 第二步:换机器时直接静默执行,不再弹界面 java -jar D:\install\fmw_12.1.3.0.0_infrastructure.jar -silent -responseFile D:\install\infra.rsp -log D:\install\infra_install.log-record生成的响应文件里,真正需要你手改的是这几个字段,其余保持录制时的值即可:
| 字段 | 含义 | 改法 |
|---|---|---|
ORACLE_HOME | 中间件安装根目录 | 换机器时改成目标机上不存在的空目录,带空格要加引号 |
INSTALL_TYPE | 安装类型 | Infrastructure 侧填完整安装或独立安装,ODI 侧填企业安装或独立安装 |
DECLINE_SECURITY_UPDATES | 是否跳过在线更新 | 内网环境填true,否则会卡在连不上更新服务器 |
INV_LOC | 中央清单目录 | 首次安装建议用 Oracle Home 下的oraInventory,避免落到用户目录 |
响应文件的字段名以你自己录出来的为准,不同小版本会有出入,不要照抄网上的模板。-log参数一定要加,静默安装不弹界面,出问题唯一的线索就是这份日志。
3.3 Infrastructure 向导里四个不能随手点过去的选项
图形向导跑起来之后,界面上的选项看起来很多,真正影响后面能不能用的就四个。
安装位置:这里填的目录就是 Oracle Home,后面 ODI 必须指回同一个。建议路径短一点,比如D:\Middleware\Oracle_Home。
安装类型:Infrastructure 这一步会问你是完整安装还是独立安装。如果你打算走企业安装、后面要有 ODI Console,这里必须选完整安装(Fusion Middleware Infrastructure)。选了独立安装,底座是装上了,但没有 WebLogic 域相关的东西,ODI 的企业安装会拒绝往上叠。
JDK 确认页:向导会自动探测,探测到的路径如果指向 JRE 会给出警告。看到警告不要忽略,退回去把JAVA_HOME改对再重来,比装完再修省事。
安全更新页:内网机器一律跳过在线更新,否则会长时间卡在连接检测上,最后超时失败。跳过不影响功能。
安装过程会跑十几分钟,卡在「Extracting files」阶段是正常的,进度条不动不代表死了。真要确认存活,看任务管理器里 java 进程的 CPU 和磁盘 IO,有动静就是在工作。
3.4 装 ODI 本体,以及 odi64.exe 第一次为什么要 JDK home
Infrastructure 装完后,用同样的方式启动第二个 jar,注意 Oracle Home 一定要指回上一步那个目录:
:: 同一个 JDK bin 目录,启动 ODI 安装器 cd /d %JAVA_HOME%\bin java -jar D:\install\fmw_12.1.3.0.0_odi.jar向导里最关键的一页是安装位置。如果它默认填了一个跟 Infrastructure 不一样的路径,手动改回来。安装类型那一页会出现企业安装和独立安装两个选项,这里的选择要和前面 Infrastructure 的决策一致:底座装了完整版就选企业安装,没装底座就只能选独立安装。
装完之后,进到odi\studio\bin目录,双击odi64.exe,第一次启动会弹一个窗口让你指定 JDK home。这个弹窗不是安装器多此一举,而是 Studio 的启动器需要一个明确的 JDK 来跑自己的图形客户端,它不去读系统环境变量,只认你在这里给的路径。填 JDK 根目录,不是 bin 目录,也不是 JRE 目录:
:: 手工从命令行启动 Studio 时也是同一个思路,先把 JAVA_HOME 指对 set JAVA_HOME=C:\Java\jdk1.7.0_80 :: 再双击 odi64.exe,弹窗里填 C:\Java\jdk1.7.0_80填错会直接报找不到 JVM 或者一闪而过。填对之后这个路径会被记住,下次不再问。
3.5 装完先做三项目录校验
安装器说完成,不等于真的完整。我一般会做三项检查再往下走:看 Oracle Home 下有没有oracle_common和odi两个目录并列存在;看odi\studio\bin下odi64.exe是否在位;看oracle_common\bin下有没有rcu.bat和config.cmd。这三样齐全,说明基础安装这一关过了,可以往下走建库和建域。少了任何一个,先回去看安装日志,别硬着头皮往下配。
4. 避坑:安装阶段五个血泪翻车点
4.1 双击 jar 没反应,命令行报 Unable to access jarfile
现象:双击fmw_12.1.3.0.0_odi.jar屏幕毫无反应,或者弹一下就没;改用命令行则提示Unable to access jarfile。
原因有两个层面。双击没反应是 Windows 把.jar关联给了某个解压软件或者根本没有关联程序;命令行报错则是-jar后面给的路径不完整,比如只写了文件名而当前目录并不在 jar 所在目录,或者路径里有空格却没加引号。
解决:不要双击。开一个 cmd,cd /d到 jar 所在目录,或者直接给完整绝对路径,路径含空格就整体用双引号包起来。同时确认java -version输出的是 1.7 以上的完整 JDK。
4.2 ODI 安装时提示 Oracle Home 无效或找不到底座
现象:装 ODI 那一步,向导在检查环境时报错,大意是这个 Oracle Home 里没有可用的基础设施;或者安装类型里只有独立安装可选,企业安装是灰的。
原因:两个 jar 装进了不同的目录。Infrastructure 装到了D:\Middleware\Oracle_Home,ODI 默认填了C:\Oracle\...,安装器在目标目录里找不到 Infrastructure 的产品注册信息,自然判定底座缺失。
解决:不要试图在错误目录上打补丁,直接删掉 ODI 装错的那个目录,重新跑一次 ODI 安装器,安装位置那一页手动改成 Infrastructure 的 Oracle Home。装之前先在资源管理器里确认那个目录下确实有oracle_common子目录。
4.3 odi64.exe 弹窗里填了 JDK 路径还是起不来
现象:首次双击odi64.exe,弹窗要求指定 JDK home,填了路径之后程序闪退,或者再弹一次同样的窗口。
原因:填的层级不对。常见的是填成了...\jdk1.7.0_80\bin(多了 bin),或者填成了...\jre(填了运行时而没有编译器),还有一种是把路径里的反斜杠打成了双反斜杠导致解析失败。
解决:填 JDK 的根目录,形如C:\Java\jdk1.7.0_80,不带结尾斜杠。填完之后可以在这台机器上验一下:C:\Java\jdk1.7.0_80\bin\java.exe -version能出版本号,且同目录下有javac.exe,说明是完整 JDK。
4.4 安装卡在解压阶段长时间不动,或者中途报临时空间不足
现象:进度条停在某个百分比十几分钟,日志里反复出现写临时文件失败,或者直接弹窗提示磁盘空间不足。
原因:安装器会把 jar 里的内容解压到系统临时目录再搬运,系统盘剩余空间不够、或者临时目录被安全软件锁住,都会卡在这一步。另外杀毒软件实时扫描大体积新文件也会显著拖慢速度。
解决:先清一遍系统盘,至少留出 10G 以上;启动安装器时可以显式指定临时目录,把它指到大盘上;安装期间临时关掉实时扫描,装完再开回来。已经卡死的进程用任务管理器结束掉,清空临时目录再重来,不要在半成品状态上继续。
:: 把临时目录指到大容量盘符再启动安装器(需要安装器版本支持) set TMP=D:\tmp set TEMP=D:\tmp java -jar D:\install\fmw_12.1.3.0.0_infrastructure.jar4.5 主机名带下划线,装完建域时失败
现象:安装过程一切顺利,跑到配置向导创建域的时候,在初始化安全框架那一步报错退出,日志里一堆跟名称解析相关的异常。
原因:计算机名里包含下划线。Fusion Middleware 的很多内部组件在生成监听地址和证书时,对主机名的字符集有要求,下划线不在允许范围内,安装阶段不一定校验,建域阶段才暴露。
解决:这个只能提前防。装之前hostname看一眼,带下划线就先改掉再装。已经装完的机器,改主机名之后通常还需要重跑配置向导,因为域里的配置已经绑定了旧名字,改完名字不重建域,问题还会以别的形式冒出来。
5. 装完不等于能用:RCU 建库与域配置这两步走完才算数
5.1 用 RCU 建三套 schema,别只建一套
ODI 企业安装装完之后,在数据库里是没有任何东西的。它需要一组元数据仓库 schema 来存主仓库、工作仓库和暂存区。这些 schema 由 Oracle 提供的 RCU 工具创建,位置在oracle_common\bin\rcu.bat。Infrastructure 装完之后这个工具就有了,不需要额外下载。
:: 启动 RCU,图形界面 D:\Middleware\Oracle_Home\oracle_common\bin\rcu.bat向导里的顺序是:创建 → 数据库连接 → 选择组件 → 指定 schema 前缀 → 设密码 → 选表空间 → 完成。几个关键点在下面这张表里:
| 向导步骤 | 关键选择 | 说明 |
|---|---|---|
| 数据库连接 | 主机、端口、服务名、SYS 口令 | 服务名别填成 SID,两者在连接串里写法不同 |
| 选择组件 | 勾选 Oracle Data Integrator | 勾上之后会自动带出三个子 schema |
| schema 前缀 | 默认DEV | 前缀决定生成的用户名,后面 Studio 连接要用到 |
| 三个 schema | 主仓库、工作仓库、暂存 | 主仓库存全局配置,工作库存执行版本,暂存区做中间表落地 |
| 表空间 | 默认即可 | 生产环境要单独规划,测试环境用默认省事 |
建完之后在数据库里能看到DEV_ODI_REPO、DEV_ODI_WORKREPO、DEV_ODI_STAGE三个用户,以及 RCU 自己建的DEV_MDS、DEV_OPSS等公共 schema。这一步的密码要记下来,建域的时候会要求再输一遍,输错了域起不来,报的错还很绕。
5.2 配置向导建域,模板必须勾对
域是把 WebLogic 运行时和 ODI 应用拼起来的那一层。用的还是 Infrastructure 带下来的配置工具:
:: 启动域配置向导 D:\Middleware\Oracle_Home\oracle_common\bin\config.cmd向导里第一页选「创建新域」,然后是指定域位置。域目录建议和 Oracle Home 分开,比如D:\Middleware\user_projects\domains\odi_domain,这样以后升级 Oracle Home 的时候域不受影响。
模板那一页是整个流程里最关键的一页,需要勾选的通常是这几项:
| 模板 | 作用 | 是否必选 |
|---|---|---|
| Oracle Data Integrator - Agent | 调度代理,跑场景的执行端 | 必选 |
| Oracle Data Integrator - Console | 浏览器端的监控与管理界面 | 企业安装必选 |
| Oracle Enterprise Manager | 可选的管理插件 | 不装 EM 可以不选 |
| Oracle JRF | 公共运行时,通常自动带上 | 自动 |
选完模板会要求填数据库连接,这里连的就是 RCU 建出来的那套 schema。管理员账号密码自己定,端口默认 7001,除非被占用了否则不用改。整个配置过程会跑几分钟,中间会重启几次内部组件,别以为卡死了就关窗口。
5.3 启动域并验证控制台能打开
域建完之后,用域目录下的启动脚本拉起服务:
:: 启动管理服务器,窗口不要关,关了服务就停 D:\Middleware\user_projects\domains\odi_domain\bin\startWebLogic.cmd等控制台输出里出现「服务器状态为 RUNNING」的字样,再去浏览器验证。ODI Console 的地址形如http://主机名:7001/odiconsole,能打开登录页说明域、应用、数据库连接三样都通了。如果打不开,先看启动日志里有没有数据源连接失败的错误,九成是 RCU 那一步的密码或者服务名填错了。
5.4 Studio 首次连接主仓库,这一步过了才算真装完
域跑起来之后,回到odi\studio\bin\odi64.exe。Studio 启动后新建一个连接,类型选主仓库,填 JDBC 地址、主仓库用户名和密码:
JDBC 地址: jdbc:oracle:thin:@//主机名:1521/orcl 用户名: DEV_ODI_REPO 口令: RCU 建库时设的密码点测试连接,通过之后保存。左侧的安全导航器里能看到「拓扑」和「操作员」两个节点,说明 Studio 已经连上了主仓库,整个安装链路走通。到这一步之前的所有工作,本质上都是在为这一次连接做铺垫。
6. 验证与进阶:让这套环境自己证明它能干活
装完能连上,只是「没装坏」,不叫「能用」。我习惯用一个小动作验证:在 Studio 里建一个空项目,导入一个知识模块,然后在拓扑里配一个源数据服务器和目标数据服务器(可以是同一个库的两个用户),新建一个最简单的接口,源表拖过去、目标表拖过去,直接执行。执行完切到操作员面板,看会话日志里每一步的状态。如果接口跑出绿色、目标表里有数据,这套环境就是真的能干活,不是只能打开界面。
这个验证过程里有几个观察点值得单独记一下。会话日志里的步骤顺序能反映知识模块被正确加载;如果卡在「创建临时表」一步,多半是暂存区 schema 的权限或者表空间配额问题;如果报连接失败但拓扑里测试连接是通过的,检查一下 Agent 那边的数据服务器配置是不是跟 Studio 里配的不是同一份。这种「两处配置」的坑在 ODI 里非常常见,测试连接测的是拓扑里的定义,实际执行走的是 Agent 加载的那份。
再往上一个层次,值得花时间的是把这套安装过程沉淀成可复现的东西。前面提到的-record出来的响应文件是一半,另一半是一份装完必查的清单:Oracle Home 下两个目录是否齐、rcu.bat和config.cmd是否存在、数据库里三个 schema 是否建成、域能不能起来、Console 能不能打开、Studio 能不能连上主仓库。这六项串起来跑一遍,比任何一句「安装成功」都靠谱。
还有个小技巧:日志永远比界面诚实。安装阶段的日志在-log指定的文件里,域配置的日志在域目录的servers\AdminServer\logs下,Studio 连不上仓库时的详细报错在 Studio 自己的日志目录里。界面弹窗给的那句话通常只有一行,真正的现场全在日志里。养成装完先翻日志的习惯,能省掉大量「重装一遍试试」的时间。
血泪经验是有一年在一个测试环境上,因为主机名带下划线,装了三遍都在建域那一步失败,每次都是删干净重来,两小时没了。从那以后我每次装 ODI 之前,都会先把主机名、路径、JDK、端口这四项在纸上抄一遍再动手,装完再按那份六项清单走一遍验证。这四加六的十分钟,比后面任何一次返工都便宜。希望帮到你。
本文还有配套的精品资源,点击获取