用途
一些情况下,执行 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 中。
$ unzip -d $GI_HOME p6880880_
3. 以 Grid 用户身份执行以下命令来安装/升级 18c GI ,同时将补丁安装到 Gold Image 中。
$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。
以下是示例:
$ ./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 OracleHomeInfo
OPatch failed with error code 2
12.2.0.1
12.2.0.1 的步骤如下:
1. 以 Grid 用户身份在当前节点将 Grid Infrastructure Gold Image 解压缩到目标 GI 主目录路径下。
2. 以 Grid 用户身份下载最新版本的 OPatch (Patch 6880880) 并安装到解压缩后的 GI Gold Image 中。
$ unzip -d $GI_HOME p6880880_
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 <下载补丁的保存位置>
以下是示例:
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 OracleHomeInfo
OPatch 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#CWADD03202
5 Cloning Oracle Clusterware
12.1
https://docs.oracle.com/database/121/CWADD/GUID-502ABA1D-8246-4A13-BE72-3E806B77AB8F.htm#CWADD03202
8 Cloning Oracle Clusterware
4. 执行
方法 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 这个目录):
5. 以 GI 软件用户身份将 GI PSU 展开到空目录下:
##注意 : 因为 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" 命令来安装补丁, 然后执行
参考