第35期 在执行 Grid Infrastructure 配置之前如何安装 Grid Infrastructure 补丁

来源:这里教程网 时间:2026-03-03 21:42:57 作者:

用途

一些情况下,执行 root 脚本之前需要安装补丁以保证 root 脚本执行成功(例如  Document:1212703.1) 。本文档说明在配置 GI 之前(执行 root.sh 或 rootupgrade.sh 之前)如何安装 Grid Infrastructure 补丁(包括 GI PSU 补丁) 。 如果是升级,该文档适用于在新的 GI 主目录安装补丁的情况,不适用于在已有(当前)集群软件主目录安装补丁的情况。 执行 root 脚本之前按照 README 去安装 GI 补丁可能会失败,因为这些步骤是针对已经配置好的 GI 主目录的。 因为新的 GI 主目录还没有配置完成,不要使用 " opatch auto" 。 

问题和答案

18.1 以及之后的版本

1. 以 Grid 用户身份在当前节点将 Grid Infrastructure Gold Image 解压缩到目标 GI 主目录路径下。

2. 以 Grid 用户身份下载最新版本的 OPatch (Patch 6880880) 并安装到解压缩后的 GI Gold Image 中。

注意:  请将 ORACLE_HOME/OPatch 备份到专用备份目录。确认没有 ORACLE_HOME/OPatch 目录存在后,将下载的 OPatch zip文件解压缩到 ORACLE_HOME 目录下。 $ unzip -d $GI_HOME p6880880_<platform version info>.zip

3. 以 Grid 用户身份执行以下命令来安装/升级 18c GI ,同时将补丁安装到 Gold Image 中。

仅安装 Release Updates:

$GI_HOME/gridSetup.sh -applyRU <下载补丁的保存位置> 仅安装 Release Updates Revision:$GI_HOME/gridSetup.sh -applyRUR <下载补丁的保存位置>  仅安装 Non-RU 补丁:$GI_HOME/gridSetup.sh -applyOneOffs <下载补丁的保存位置> 使用一条命令来安装 Release Updates 和 Non-RU 补丁:$GI_HOME/gridSetup.sh -applyRU <下载补丁的保存位置> -applyOneOffs <下载补丁的保存位置>

Windows 环境中,不支持 applyRU 选项。请先安装/配置基础的 Goldimage 软件 (不使用 -applyRU) ,然后再使用标准的 opatch/opatchauto 步骤来安装 RU。

注意: 如果使用 -silent 选项,请同时使用 -responseFile 选项指定 response file,以避免 "[FATAL] [INS-40426] Grid installation option has not been specified." 错误。

以下是示例:

$ ./gridSetup.sh -applyRU /u01/patch/27100009/Preparing the home to patch...Applying the patch /u01/patch/27100009/...Successfully applied the patch.

4.  按照通常的方法执行 gridSetup.sh。安装完成后,可通过 OPatch 确认已经安装的补丁:

如果'opatch lspatches' 报告下面的错误并且执行失败,请检查 gridSetup.sh 是否已经执行,然后重试。Inventory load failed... LsPatchesSession::loadAndPrintInstalledPatch() LsPatchesSession failed: RawInventory gets null OracleHomeInfoOPatch failed with error code 2 

提示:   18c 中,执行root.sh 或 rootupgrade.sh 之前,不能单独使用 opatchauto 或 'gridSetup.sh -applyRU <下载补丁的保存位置>'  来安装补丁。补丁必须在初始运行 gridSetup.sh 时进行安装。

12.2.0.1

12.2.0.1 的步骤如下:

1. 以 Grid 用户身份在当前节点将 Grid Infrastructure Gold Image 解压缩到目标 GI 主目录路径下。

2. 以 Grid 用户身份下载最新版本的 OPatch (Patch 6880880) 并安装到解压缩后的 GI Gold Image 中。

注意: 请将 ORACLE_HOME/OPatch 备份到专用备份目录。确认没有 ORACLE_HOME/OPatch 目录存在后,将下载的 OPatch zip文件解压缩到 ORACLE_HOME 目录下。 $ unzip -d $GI_HOME p6880880_<platform version info>.zip

3. 以 Grid 用户身份执行以下命令将补丁安装到 Gold Image 中。

仅安装 Release Updates: $GI_HOME/gridSetup.sh -applyPSU <下载补丁的保存位置>  仅安装 Non-RU 补丁:$GI_HOME/gridSetup.sh -applyOneOffs <下载补丁的保存位置>  使用一条命令来安装 Release Updates 和 Non-RU 补丁:$GI_HOME/gridSetup.sh -applyPSU <下载补丁的保存位置> -applyOneOffs <下载补丁的保存位置>

 

以下是示例:

$ ./gridSetup.sh -applyPSU /u01/patch/27100009/

Preparing the home to patch...Applying the patch /u01/patch/27100009/...Successfully applied the patch.

 

4.  按照通常的方法执行 gridSetup.sh。安装完成后,可通过 OPatch 确认已经安装的补丁:

如果'opatch lspatches' 报告下面的错误并且执行失败,请检查 gridSetup.sh 是否已经执行,然后重试。Inventory load failed... LsPatchesSession::loadAndPrintInstalledPatch() LsPatchesSession failed: RawInventory gets null OracleHomeInfoOPatch failed with error code 2 

 

方法 1: 12.1.0.x

1. 使用 software only 选项在一个节点上安装 Grid Infrastructure 。

2. 使用 opatch apply 或 napply 安装必要的补丁。请参考补丁附带的readme 中的 "how to apply to a Grid Infrastructure software only home" 部分。

3. 将安装过补丁的软件克隆到其他节点。请参考:

11.2:https://docs.oracle.com/cd/E11882_01/rac.112/e41959/clonecluster.htm#CWADD032025 Cloning Oracle Clusterware 12.1 https://docs.oracle.com/database/121/CWADD/GUID-502ABA1D-8246-4A13-BE72-3E806B77AB8F.htm#CWADD032028 Cloning Oracle Clusterware

4. 执行 <GRID_HOME>/crs/config/config.sh 来配置/升级集群。Windows 上使用 config.bat 来代替 config.sh。

 

方法 2: 12.1.0.2 或 11.2.0.x - Linux 和 UNIX 上在安装期间安装补丁

步骤概要如下:

1. 使用 installer 安装 Grid Infrastructure, installer 会将软件推送到集群的所有其他节点。

2. 当提示运行 root 脚本 (root.sh 或 rootupgrade.sh) 时, 按照下面的步骤进行操作。

3. 补丁安装完成后,恢复到正常步骤,执行 root 脚本等处理。

 

11.2.0.x 或 12.1.0.2

因为 "opatch auto" 依存于运行中的 Oracle Clusterware 来识别配置,所以在执行root.sh 或 rootupgrade.sh 之前,无法使用这个命令在新的 GI 主目录 中安装 GI 补丁。

建议安装最新的 GI PSU。关于补丁号,请您参考  Document:756671.1 。 以下步骤说明如何在执行 root 脚本之前,在新安装的 GI 主目录 中安装 11.2.0.2.3 GI PSU (GI PSU 3) 。安装其他 11.2 GI 补丁时,这个步骤是相同的 (只是发行版本和补丁号不同) 。 1. 当 OUI 提示运行 root.sh (全新安装)或 rootupgrade.sh (升级)时,不要运行 root.sh 或 rootupgrade.sh 脚本,但请保持 GUI 安装画面的开启状态(提示执行 root 脚本)。 2. 按照下面的步骤将 11.2.0.2.3 GI PSU (12419353) 应用到新安装的(但还没有配置) 的11.2.0.2 GI 主目录下。 (请不要参考 readme 的步骤,否则会导致在尚未配置的 GI 主目录中安装补丁失败)。 3. 按照  Document:1339140.1 " How do I install the latest OPatch release?" 说明, 在 GI主目录中安装最新版本的 OPatch 11.2(可通过  Patch 6880880 获取) 。 4. 以 GI 软件用户身份创建空的目录来存放 GI PSU (示例中使用 gipsu 这个目录):

% mkdir /u01/stage/gipsu

5. 以 GI 软件用户身份将 GI PSU 展开到空目录下:

% unzip -d /u01/stage/gipsu <downloaded-patch-dir>/p12419353_112020_Linux-x86-64.zip ##注意 因为 GI PSU 压缩包包含 GI PSU 和 DB PSU, 解压缩后会创建2个子目录 12419353 和 12419331,分别对应GI 和 DB PSU。

6. 以 GI 软件用户身份,使用 OPatch 将补丁应用到新安装的 11.2.0.2 GI 主目录下:

切换到解压缩位置的每个子目录下,执行 "opatch apply|napply" 命令。

例如:

% cd /u01/stage/gipsu/12419353 % <11.2.0.2GI_HOME>/OPatch/opatch apply /u01/stage/gipsu/12419353 -oh <11.2.0.2GI_HOME> -local % cd /u01/stage/gipsu/12419331 % <11.2.0.2GI_HOME>/OPatch/opatch apply /u01/stage/gipsu/12419331 -oh <11.2.0.2GI_HOME> -local

7. 在集群所有节点上重复上述步骤 3-6 。 8. 在新安装的 GI 主目录(所有节点)上安装 11.2.0.2.3 GI PSU 之后,可以继续执行 root.sh 或 rootupgrade.sh 脚本。请按照 OUI 窗口提示,一次在一个节点上执行脚本 (切换到下一个节点之前需要在当前节点执行完毕) 。

9. 在所有节点成功执行 root 脚本后,在步骤1中保留的 root 脚本执行提示 OUI 弹出画面上点击ok。

 

仅针对12.1.0.1 

在12.1.0.1中,受到内部 Bug 的影响,上述步骤无法执行。可采用下面的任一方法作来解决:

1: 执行 root 脚本 (root.sh 或 rootupgrade.sh) 之前,不要在 12.1.0.1 主目录上安装任何补丁。请先配置 GI 。当 GI 在12.1.0.1 主目录中启动并运行后,可以安装补丁。

或者

2. 在所有节点上使用 software only 选项来安装 12.1.0.1 ,在 12.1.0.1 主目录下使用 "opatch apply" 命令来安装补丁, 然后执行 <GI_HOME>/crs/config/config.sh 来 配置/升级到 12.1.0.1。关于config.sh 的详细内容,请参考  Document:1354258.1 。

参考

相关推荐