Oracle RAC 19.3打19.5.1 RU补丁

来源:这里教程网 时间:2026-03-03 15:16:23 作者:

Oracle RAC 19.3打19.5.1 RU补丁

说明:步骤来源于README整理。

1.升级opatch工具,解压补丁包
[grid@pub19-node1 software]$ unzip -o p6880880_190000_Linux-x86-64.zip -d /u01/app/19.0.0/grid/
[grid@pub19-node1 software]$ unzip p30464035_190000_Linux-x86-64.zip
[oracle@pub19-node1 software]$ unzip -o p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.0.0/dbhome_1/
2.冲突检测
grid用户:
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /software/30464035/30446054
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /software/30464035/30554387
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /software/30464035/30689680
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /software/30464035/30655595
oracle用户:
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /software/30464035/30446054
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /software/30464035/30554387
3.系统空间检测
Grid Infrastructure Home,grid用户:
创建/tmp/patch_list_gihome.txt文件,内容如下:
cat /tmp/patch_list_gihome.txt
/software/30464035/30446054
/software/30464035/30554387
/software/30464035/30689680
/software/30464035/30655595
运行检测:
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.tx
Oracle Database Home,oracle用户:
创建/tmp/patch_list_dbhome.txt文件,内容如下:
cat /tmp/patch_list_dbhome.txt
/software/30464035/30446054
/software/30464035/30554387
运行检测:
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt
4.升级补丁
Oracle RAC,GI Home与Database Home节点间不共享,ACFS没有配置,如果配置ACFS,参考README文件步骤操作。
root用户,在任意节点运行:
[root@pub19-node1 software]# /u01/app/19.0.0/grid/OPatch/opatchauto apply /software/30464035

5.其实这步成功之后,经检查只打了节点1的GI,需要继续给节点2打GI,然后节点1 DB,节点2 DB顺序打。

6.继续给节点1 DB打补丁

root用户:
节点1:
# /u01/app/19.0.0/grid/OPatch/opatchauto apply -oh /u01/app/19.0.0/grid /software/30464035/
# /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatchauto apply /software/30464035/ -oh 
/u01/app/19.0.0/grid,/u01/app/oracle/product/19.0.0/dbhome_1
 
节点2:
# /u01/app/19.0.0/grid/OPatch/opatchauto apply -oh /u01/app/19.0.0/grid /software/30464035/
 
# ls -l /u01/app/oraInventory/ContentsXML/oui-patch.xml    # 一定要检查此文件此时权限,否则报下面错误,
导致补丁corrupt,且无法回退跟再次正向应用,修改权限,打补丁。
# /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatchauto apply /software/30464035/ -oh 
/u01/app/19.0.0/grid,/u01/app/oracle/product/19.0.0/dbhome_1
 
Caution:
[Mar 11, 2020 8:56:05 PM] [WARNING] OUI-67124:ApplySession failed in system modification phase... '
ApplySession::apply failed: java.io.IOException: oracle.sysman.oui.patch.PatchException: 
java.io.FileNotFoundException: /u01/app/oraInventory/ContentsXML/oui-patch.xml (Permission denied)'
解决:
/* 按照日志输出,赋权
# chmod 664 /u01/app/oraInventory/ContentsXML/oui-patch.xml
/* 执行restore.sh,最后还是失败,其实可以用resume方法,继续打,或者采取笨办法采取手工复制软件,加回滚的办法
# /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatchauto resume /software/30464035/ -oh 
/u01/app/oracle/product/19.0.0/dbhome_1
/* 按照失败提示,哪些文件不存在,将对应补丁解压文件夹中拷贝到ORACLE_HOME指定目录中,继续回滚,直到成功回滚。
再次给节点2 oracle软件打补丁:
# /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatchauto apply /software/30464035/ -oh 
/u01/app/19.0.0/grid,/u01/app/oracle/product/19.0.0/dbhome_1
 
验证补丁:
$ /u01/app/19.0.0/grid/OPatch/opatch lsinv
$ /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatch lsinv
# su – grid
$ kfod op=patches
$ kfod op=patchlvl

5.如果配置DG,DG先打补丁

For Data Guard Standby-First patching, see My Oracle Support Document 1265700.1. 
For Standby-First patching for Oracle Database RU 12.2 and higher, the following points need to be 
considered:
The Database RU subpatch 30446054 must be applied to the Data Guard standby using Opatch.
Datapatch must not be invoked on the Data Guard standby environment to apply post patch SQL 
actions for the Database RU. 
If datapatch is run on a standby, it will error while trying to call the SYS.DBMS_QOPATCH interface. 
For more details about this error, see My Oracle Support Document 1599479.1.
Datapatch must be invoked on the primary database after all the databases, that is primary and Data Guard, 
are patched and patch deployment of the Database RU is complete for the setup
7.datapatch/utlrp.sql
The datapatch utility will then run the necessary apply scripts to load the modified SQL files into the database.
An entry will be added to the dba_registry_sqlpatch view reflecting the patch application.
In the dba_registry_sqlpatch view, verify the Status for the APPLY is "SUCCESS".
Single/Multitenant (CDB/PDB) DB
sqlplus /nolog
SQL> Connect / as sysdba
SQL> startup
SQL> alter pluggable database all open;
SQL> quit
cd $ORACLE_HOME/OPatch
./datapatch -verbose
检查是否有错误:
Check the following log files in $ORACLE_BASE/cfgtoollogs/sqlpatch/30446054/<unique patch ID> for errors:
Any databases that have invalid objects after the execution of datapatch should have utlrp.sql run to revalidate those objects.
For example:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql
8.Upgrade Oracle Recovery Manager Catalog
$ rman catalog username/password@alias
RMAN> UPGRADE CATALOG;
RMAN> UPGRADE CATALOG;
RMAN> EXIT;
9.回退补丁
Oracle RAC,GI Home与Database Home节点间不共享,ACFS没有配置,如果配置ACFS,参考README文件步骤操作。
root用户:
# <GI_HOME>/OPatch/opatchauto rollback <UNZIPPED_PATCH_LOCATION>/3046403
If the message, "A system reboot is recommended before using ACFS" is shown, then a reboot must be issued before continuing. Failure to do so will result in running with an unpatched ACFS\ADVM\OKS driver.
10.回滚补丁之后,再次运行datapatch
The datapatch utility will then run the necessary apply scripts to load the modified SQL files into the database.
An entry will be added to the dba_registry_sqlpatch view reflecting the patch application.
In the dba_registry_sqlpatch view, verify the Status for the APPLY is "SUCCESS".
Single/Multitenant (CDB/PDB) DB
sqlplus /nolog
SQL> Connect / as sysdba
SQL> startup
SQL> alter pluggable database all open;
SQL> quit
cd $ORACLE_HOME/OPatch
./datapatch -verbos
检查是否有错误:
Check the following log files in $ORACLE_HOME/sqlpatch/30446054/ for errors: 30446054_rollback_<database SID>_<CDB name>_<timestamp>.log
where database SID is the database SID, CDB name is the name of the multitenant container database, and timestamp is of the form YYYYMMMDD_HH_MM_SS.
编译无效对象:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sq
11.Upgrade Oracle Recovery Manager Catalog
If you are using the Oracle Recovery Manager, the catalog needs to be upgraded. Enter the following command to upgrade it. The UPGRADE CATALOG command must be entered twice to confirm the upgrade.
$ rman catalog username/password@alias
RMAN> UPGRADE CATALOG;
RMAN> UPGRADE CATALOG;
RMAN> EXIT;

说明:最后没有按照README完成滚动升级,总是报错,有活动的文件,最后一个节点一个节点挨个打了所有补丁。

相关推荐