Oracle 19c RAC安装升级补丁 操作系统: CentOS Linux release 7.6.1810 Oracle版本: 19.3.0 GIRU版本: 19.12.0.0.210720
一、OPatch检查和更新
注意:所有节点分别操作
grid用户
确保OPatch版本在12.2.0.1.25以上 $ opatch version
OPatch版本不符合需求,需要更新6880880补丁
将6880880补丁下载,并解压 $ unzip -o “6880880.zip”
切换至GI_HOME目录(GRID用户下的OPatch替换须用root用户操作)
cd $GI\_HOME mv OPatch OPatch\_old cp <6880880\_path> $GI\_HOME/. chown -R grid.oinstall $GI\_HOME/OPatch ---注意不要覆盖掉$GI\_HOME的权限
复制
验证OPatch版本 $ opatch version
Oracle用户
$ opatch version
复制
OPatch版本不符合需求,需要更新6880880补丁
将6880880补丁下载,并解压 $ unzip -o “6880880.zip”
切换至ORACLE_HOME目录
cd $ORACLE\_HOME mv OPatch OPatch\_old cp <6880880\_path> $ORACLE\_HOME/. chown -R oracle.oinstall $ORACLE\_HOME/OPatch ---注意不要覆盖掉
复制
$ORACLE_HOME的权限
验证OPatch版本 $ opatch version
二、验证Oracle Inventory的有效性
注意:所有节点都操作,以节点1为例。
GI HOME 和DB HOME 都需要验证,分别使用grid和oracle用户执行如下命令,确保返回SUCCESS。
grid用户
$ORACLE\_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE\_HOME
复制
oracle用户
$ORACLE\_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE\_HOME
复制
满足需求(grid、db都要替换,db替换不需要用root用户,每个节点都需要替换)
三、运行 OPatch 冲突检查
注意:所有节点都操作
进行补丁验证(grid用户下)
cd /u01/app/19.3.0/grid/OPatch/ $ORACLE\_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/32895426/32904851 $ORACLE\_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/32895426/32916816 $ORACLE\_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/32895426/32915586 $ORACLE\_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/32895426/32918050 $ORACLE\_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/32895426/32585572
复制
进行补丁验证(Oracle用户下)
$ORACLE\_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/32895426/32904851 $ORACLE\_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/32895426/32916816
复制
如果补丁验证通过会有以下提示:
五、运行opatch命令检查GI HOME下是否有足够的空间
注意:所有节点都操作
Check if enough free space is available on the ORACLE_HOME filesystem for the patches to be applied as given below:
For Grid Infrastructure Home, as home user:
Create file /tmp/patch_list_gihome.txt with the following content:
% cat /tmp/patch\_list\_gihome.txt /tmp/32895426/32904851 /tmp/32895426/32916816 /tmp/32895426/32915586 /tmp/32895426/32918050 /tmp/32895426/32585572
复制
Run the opatch command to check if enough free space is available in the Grid Infrastructure Home:
% $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt For Database home, as home user:
Create file /tmp/patch_list_dbhome.txt with the following content:
% cat /tmp/patch\_list\_dbhome.txt /tmp/32895426/32904851 /tmp/32895426/32916816
复制
Run opatch command to check if enough free space is available in the Database Home:
% $ORACLE\_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch\_list\_dbhome.txt
复制
六、补丁冲突检测与解决 The following commands check for conflicts in both the 12.1 GI home and the 12.1 DB homes.
In case you are applying the patch, run this command:
#/u01/app/19.3.0/grid/OPatch/opatchauto apply /tmp/32895426 -analyze
复制
In case you are rolling back the patch, run this command:
#GRID\_HOME/OPatch/opatchauto rollback <UNZIPPED\_PATCH\_LOCATION>/32895426 -analyze
复制
在DB HOME的版本和GI HOME的版本一致的情况下,可以使用root用户执行opatchauto命令一次对GI和DB HOME进行patch操作。如果GI和DB HOME版本不同,可以使用opatchauto分别进行patch动作。 注意一点:这里的RU补丁,一定要用grid用户来解压缩,否则执行opatchauto的时候回报OPatch Prerequisite check “CheckApplicable” failed的错误。
七、使用root用户应用补丁【节点1打完,再打节点2】
使用opatchauto 对于RAC环境,可以使用OPatchAuto一键安装补丁(OPatchAuto 需要使用root用户) 配置环境变量
export ORACLE\_BASE=/u01/app/grid export ORACLE\_HOME=/u01/app/19.3.0/grid export PATH=/u01/app/19.3.0/grid/bin:/u01/app/19.3.0/grid/OPatch:$PATH 或者vim .bash\_profile export ORACLE\_BASE=/oracle/app/grid export ORACLE\_HOME=/oracle/app/19.0.0/grid export PATH=${ORACLE\_HOME}/bin:${ORACLE\_HOME}/OPatch:${PATH}
复制
加载环境变量
source .bash_profile
安装补丁
opatchauto apply /tmp/32895426 —使用opatchauto不需要停机
第二个节点 首次安装会报错,安装补丁前检查一下/oracle/app/oraInventory/ContentsXML/路径下文件权限是否与1节点一致,不一致的话改成与一节点一致,可能就不会出错了
Start applying binary patch on home /u01/app/oracle/product/19.3.0/db_1 这一步oui-patch.xml文件会出现 可以文件出现就修改权限
\[grid@p19node1 ContentsXML\]$ pwd /u01/app/oraInventory/ContentsXML
复制
节点1正常情况
\[grid@p19node1 ContentsXML\]$ ll \-rw-rw---- 1 grid oinstall 300 Jan 25 15:57 comps.xml \-rw-rw---- 1 grid oinstall 557 Nov 29 12:42 inventory.xml \-rw-rw---- 1 grid oinstall 292 Jan 25 15:57 libs.xml \-rw-rw---- 1 grid oinstall 174 Jan 25 15:57 oui-patch.xml
复制
节点2 权限不够的情况
\[grid@p19node2 ContentsXML\]$ ll total 16 \-rw-rw---- 1 grid oinstall 300 Jan 25 16:36 comps.xml \-rw-rw---- 1 grid oinstall 557 Nov 29 12:46 inventory.xml \-rw-rw---- 1 grid oinstall 292 Jan 25 16:36 libs.xml \-rw-r--r-- 1 oracle oinstall 174 Jan 25 16:36 oui-patch.xml
复制
补丁安装后说明在数据库端执行以下指令
确保所有pdb是open状态
alter pluggable database all open;
复制
将修改后的 SQL 文件加载到数据库中
注意:在任一节点操作
cd $ORACLE\_HOME/OPatch ./datapatch -verbose cd $ORACLE\_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> @utlrp.sql
复制
八、验证升级版本
检查gi是否成功
$ORACLE\_HOME/OPatch/opatch lspatches
复制
检查db是否成功
$ORACLE\_HOME/OPatch/opatch lspatches
复制
节点1验证 grid用户验证
\[grid@p19node1 ~\]$ $ORACLE\_HOME/bin/kfod op=patches
复制
List of Patches
32585572 32904851 32915586 32916816 32918050 \[grid@p19node1 ~\]$ \[grid@p19node1 ~\]$ $ORACLE\_HOME/bin/kfod op=patchlvl Current Patch level 3998055650 \[grid@p19node1 ~\]$ $ORACLE\_HOME/OPatch/opatch lspatches 32918050;TOMCAT RELEASE UPDATE 19.0.0.0.0 (32918050) 32916816;OCW RELEASE UPDATE 19.12.0.0.0 (32916816) 32915586;ACFS RELEASE UPDATE 19.12.0.0.0 (32915586) 32904851;Database Release Update : 19.12.0.0.210720 (32904851) 32585572;DBWLM RELEASE UPDATE 19.0.0.0.0 (32585572)
复制
oracle用户验证
\[oracle@p19node1 ~\]$ $ORACLE\_HOME/OPatch/opatch lspatches 32916816;OCW RELEASE UPDATE 19.12.0.0.0 (32916816) 32904851;Database Release Update : 19.12.0.0.210720 (32904851) OPatch succeeded. \[oracle@p19node1 ~\]$ sqlplus / as sysdba SQL\*Plus: Release 19.0.0.0.0 - Production on Tue Feb 22 11:15:09 2022 Version 19.12.0.0.0 Copyright (c) 1982, 2021, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.12.0.0.0 SYS@db19c1> SYS@db19c1>col action for a15 SYS@db19c1>col status for a15 SYS@db19c1>select patch\_id,patch\_type,action,status,target\_version from dba\_registry\_sqlpatch; PATCH\_ID PATCH\_TYPE ACTION STATUS TARGET\_VERSION
复制
PATCH\_ID PATCH\_TYPE ACTION STATUS TARGET\_VERSION \---------- ---------- --------------- --------------- --------------- 29517242 RU APPLY SUCCESS 19.3.0.0.0 32904851 RU APPLY SUCCESS 19.12.0.0.0 SYS@db19c1>
复制
文章被以下合辑收录
评论
