代码改变世界

Oracle 19c RAC 自动应用RU补丁简明版

2022-12-23 15:44  AlfredZhao  阅读(903)  评论(0编辑  收藏  举报

环境:Oracle RAC(GI 19.3 + DB 19.3)
本文应用补丁信息, 19.16 RU:

  • p34130714_190000_Linux-x86-64.zip

本文主要演示使用opatchauto apply自动应用补丁的过程。

1.更新OPatch版本

在所有节点的GI HOME和DB HOME下,都更新为符合应用补丁需求的OPatch版本。 将之前OPatch备份,解压新版本的OPatch到$ORACLE_HOME目录下,最后检查OPatch版本。
--更新OPatch版本 @all nodes including GI HOME and DB HOME
mv OPatch OPatch_bak
unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch version

OPatch Version: 12.2.0.1.35

2.使用opatchauto应用补丁

使用opatchauto应用补丁,具体需要参照补丁包中附带的readme来操作。 根据readme中描述,对于GI HOME和DB HOME都不共享的情况下,使用root用户在每个节点执行opatchauto的具体命令即可实现自动应用补丁。

先确认补丁包的解压目录(各节点保持一致,方便操作):

$ cd /u01/media/ru
$ unzip /u01/media/p34130714_190000_Linux-x86-64.zip

然后使用opatchauto apply应用补丁,

--opatchauto apply @all nodes
# <GI_HOME>/OPatch/opatchauto apply <UNZIPPED_PATCH_LOCATION>/34130714
# $ORACLE_HOME/OPatch/opatchauto apply /u01/media/ru/34130714
...

这个opatchauto的过程会自动关闭数据库和集群,打完补丁之后自动启动集群和数据库。
同样,第一个节点成功后,在第二个节点应用补丁,输出基本一样,不再演示。

此外,特别值得一提的是,19c还有个便捷操作,如果安装时已经准备好RU补丁,可以在安装软件时直接指定同时applyRU。
比如,在安装DB软件时同时指定RU:

[oracle@bogon db_1]$ ./runInstaller -applyRU /u01/media/ru/34130714/
Applying the patch /u01/media/ru/34130714/...
Successfully applied the patch.
The log can be found at: /tmp/InstallActions2022-12-23_02-59-12PM/installerPatchActions_2022-12-23_02-59-12PM.log
Launching Oracle Database Setup Wizard...

The response file for this session can be found at:
 /u01/app/oracle/product/19.3.0/db_1/install/response/db_2022-12-23_02-59-12PM.rsp

You can find the log of this install session at:
 /tmp/InstallActions2022-12-23_02-59-12PM/installActions2022-12-23_02-59-12PM.log
Moved the install session logs to:
 /u01/app/oraInventory/logs/InstallActions2022-12-23_02-59-12PM
[oracle@bogon db_1]$ 
[oracle@bogon db_1]$ 
[oracle@bogon db_1]$ 
[oracle@bogon db_1]$ sqlplus -v

SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

[oracle@bogon db_1]$ 

需要注意,OPatch版本同样需要安装前更新好,否则会报错。

3.应用补丁后操作

最后就是根据readme具体说明,在数据库执行:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> startup
SQL> alter pluggable database all open;
SQL> quit

% cd $ORACLE_HOME/OPatch
% ./datapatch -verbose

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql

Check the following log files in $ORACLE_BASE/cfgtoollogs/sqlpatch/34133642/<unique patch ID> for errors.

总的来说,这个opatchauto不出问题的情况下,操作上要比手工打补丁简单的多。