我要提问
ARTICLE DETAIL

资讯详情

前沿编程新知与开发实战干货的深度解读。

ODI 12c安装实战:Infrastructure与ODI先后顺序及RCU建库避坑

ODI 12c安装实战:Infrastructure与ODI先后顺序及RCU建库避坑 简介这份文档面向数据集成工程师、中间件运维人员以及需要搭建ODI环境的中高级学习者围绕Oracle Data Integrator 12cR112.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 12cR112.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 上。安装包解压得到提供什么企业安装是否必装独立安装是否必装Infrastructurefmw_12.1.3.0.0_infrastructure.jarWebLogic、OPSS、MDS、JRF、RCU、配置向导必须先装不需要ODIfmw_12.1.3.0.0_odi.jarODI 组件、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 异常。这是很典型的「装的时候没问题、配的时候炸」的情况。第四项是资源。安装器解压临时文件会吃掉几个 GOracle Home 本身也要 810G再加上后面域目录留 20G 空间不夸张。另外先确认 7001、7002 端口没被别的服务占着netstat -ano | findstr :7001扫一眼。3. java -jar 跑通两次安装命令写法、向导选项与 odi64.exe 的 JDK home3.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_HOMEC:\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 homeInfrastructure 装完后用同样的方式启动第二个 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_HOMEC:\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 所在目录或者路径里有空格却没加引号。解决不要双击。开一个 cmdcd /d到 jar 所在目录或者直接给完整绝对路径路径含空格就整体用双引号包起来。同时确认java -version输出的是 1.7 以上的完整 JDK。4.2 ODI 安装时提示 Oracle Home 无效或找不到底座现象装 ODI 那一步向导在检查环境时报错大意是这个 Oracle Home 里没有可用的基础设施或者安装类型里只有独立安装可选企业安装是灰的。原因两个 jar 装进了不同的目录。Infrastructure 装到了D:\Middleware\Oracle_HomeODI 默认填了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 TMPD:\tmp set TEMPD:\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勾上之后会自动带出三个子 schemaschema 前缀默认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、端口这四项在纸上抄一遍再动手装完再按那份六项清单走一遍验证。这四加六的十分钟比后面任何一次返工都便宜。希望帮到你。本文还有配套的精品资源点击获取
返回列表