原文地址:Simple database installation with applyRU and applyOneOffs
原文作者:Mike.Dietrich
你们中的一些人可能还记得我在 2021 年 4 月 22 日发布的关于“我在使用applyRU和applyOneOffs开关进行无人值守安装“时看到的问题的博文。当我将 OJVM 捆绑包传递到我的安装队列时,安装失败并出现奇怪的jox错误。在这次事件过后的一年,让我给您一些背景知识,当然还会向您展示使用 applyRU 和 applyOneOffs 进行简单数据库安装的解决方法。
发生了什么事?
很久以前,我们介绍了使用-applyRU和-applyOneOffs开关使用 runInstaller 立即安装补丁的非常方便的功能。您可以应用最新的(或什至较旧的)RU,但也可以应用一次性补丁、合并和捆绑包的列表,例如 OJVM 补丁。
但不幸的是,一旦我对这种简单的安装技术感到兴奋,它就开始失败了。正是在您想要应用 OJVM 包的情况下,您收到了:
Error in invoking target 'irman ioracle idrdactl idrdalsnr idrdaproc' of makefile '/u02/patch/rdbms/lib/ins_rdbms.mk'. See '/u01/app/oraInventory/logs/InstallActions2022-05-16_12-29-19PM/installActions2022-05-16_12-29-19PM.log' for details.
复制
从 Oracle 数据库 19.11.0 开始。
这在 install.log 中被标记:
INFO: /u02/patch/lib//libserver19.a(joxwtp.o): In function `jox_eujs_nowait': joxwtp.c:(.text+0xf7b): undefined reference to `jox_eujs_nowait_' INFO: make: *** [/u02/patch/rdbms/lib/oracle] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'irman ioracle idrdactl idrdalsnr idrdaproc' of makefile '/u02/patch/rdbms/lib/ins_rdbms.mk'. See '/u01/app/oraInventory/logs/InstallActions2022-05-16_12-29-19PM/installActions2022-05-16_12-29-19PM.log' for details. Exception Severity: 1 INFO: [May 16, 2022 12:39:35 PM] Linking RMAN Utility INFO: [May 16, 2022 12:39:35 PM] Linking RMAN Utility INFO: The output of this make operation is also available at: '/u02/patch/install/make.log' INFO:
复制
我在这篇博文中描述了它:
- 带有 19.11.0 RU、OJVM 和其他一些修复的 Oracle 19c 安装(2021 年 4 月 22 日)
当然,我确实为这个问题打开了一个错误,并与开发团队讨论了很多次这个话题:
- 错误 32816171 – 包含“-APPLYRU -APPYONEOFFS”的 19.11.0 安装失败,当 OJVM 19.11.0 包括在内时:包含 JOX_EUJS_NOWAIT 的 MAKEFILEEXCEPTION
还写了一个 MOS 注释——它基本上告诉你之后单独安装 OJVM。
MOS 注意:2788203.1 – 19c 安装与 19.11 OJVM RU 失败并出现错误“未定义对 jox_eujs_nowait_ 的引用”
这当然不是一个花哨的解决方法,因为它导致概念荒谬。
最后,在接下来的几个月里,更多的客户遇到了这个陷阱。
有解脱——有修复
显然经过很多来回之后,我的错误作为后来提出的另一个问题的副本被关闭了。
Bug 33865116:在连接 ORACLE 时将 LIBKNLOPT.A 中的 OBJ 文件替换为 RDBMS/LIB 中的文件
好吧,我真的不在乎哪个错误应该是另一个错误的副本,但我很好奇这是否有效。当您下载 Bug 33865116 的修复程序并解压缩它时,您会发现它仅将 make 文件交换为 rdbms。仅此而已。
所以我做了一个快速测试,并在我的 Linux 环境中开始安装 19.15.0 和匹配的 OJVM 19.15.0:
- 俄罗斯:p33806152_190000_Linux-x86-64.zip
- OJVM:p33808367_190000_Linux-x86-64.zip
正如预期的那样,它失败了。
然后我将Bug 33865116 的修复添加到我的安装队列中,现在竟然神奇般的运行良好,没有问题。
万幸的是,这个问题现在终于解决了。据我所知,该修复程序应包含在 19.16.0 July 2022 RU 中。
快速的分步指导
简而言之,这就是您需要做的。
-
创建
新的 Oracle 主目录 创建新的 Oracle 主目录,例如/u01/app/oracle/product/19_15_0 -
下载 19.3.0 基本版本
下载 19c 基本软件并将其解压缩到这个新创建的 Oracle 主目录中 -
下载最新的 OPatch
下载最新的 OPatch并使用zip -o将其解压缩到同一目录中(用较新的覆盖现有的 - 太旧 - OPatch 目录) -
创建补丁目录
创建一个子目录,将补丁解压到其中,例如/u01/app/oracle/product/19_15_0/ patch -
下载最新的 RU
下载最新的 RU,例如 19.15.0。您可以使用MOS Note: 2118136.2 – Download Assistant for Patch Bundles找到最简单的方法。将其解压到一个单独的目录中,例如到/u01/app/oracle/product/19_15_0/ RU19150 -
下载最新的 OJVM
下载最新的 OJVM,例如 19.15.0。您可以使用MOS Note: 2118136.2 – Download Assistant for Patch Bundles找到最简单的方法。将其解压缩到一个单独的目录中,例如到/u01/app/oracle/product/19_15_0/ OJVM19150 -
下载安装问题的补丁
下载错误 33865116 的修复并解压到另一个单独的目录,例如/u01/app/oracle/product/19_15_0/ OUIPatch
现在你有以下结构:
$ tree -L 2 . ├── RU19150 │ └── 33806152 │ └── PatchSearch.xml ├── OJVM19150 │ └── 33808367 │ └── PatchSearch.xml ├── OUIpatch ├── 33865116 └── PatchSearch.xml
复制
将补丁保存在单独的子目录中很重要,否则PatchSearch.xml将被所有其他补丁覆盖,安装将失败。
这是解决方案——是时候安装了:
./runInstaller -applyRU RU19150/33806152 -applyOneOffs OUIpatch/33865116,OJVM19159/33808367
复制
当然,您可以传递更多的一次性产品,例如 DST 补丁或 JDK。在上面的调用中,只需用逗号将它们分开即可。
最后,不要忘记清理:
- 删除补丁下载 zip 存档
- 删除您将补丁解压到的子目录
评论
