欢迎关注作者,更多数据库相关安装配置,troubleshooting,调优,备份恢复等资源
CSDN:潇湘秦-CSDN博客
公众号:潇湘秦
---------------------------------------------------------------------------------------------
感谢大家的关注,针对上篇文章分析的19c的补丁包部分这里分享一下之前记录的打补丁手册 希望对大家有帮助!
oracle patch 大全(更新至2024-03)-CSDN博客
这里是补丁下载地址
oracle 19CRAC打补丁到19.20
本文是简洁版只有步骤和命令,带命令输出板,请参看墨天伦/csdn;其他版本的方法类似,直接替换为相应的补丁包既可!
一. 命令版
1.本次所需的补丁如下
p6880880_190000_Linux-x86-64.zip (.37的opatch)
p35354406_190000_Linux-x86-64.zip(OJVM)
p35320081_190000_Linux-x86-64.zip(DB)
p35319490_190000_Linux-x86-64.zip(GI)
2.更新grid opatch 两个节点 root用户执行
mv /u01/app/19.3.0/grid/OPatch /u01/app/19.3.0/grid/OPatch.bak --备份opatch
unzip -q p6880880_190000_Linux-x86-64.zip -d /u01/app/19.3.0/grid/ --更新opatch
chmod -R 755 /u01/app/19.3.0/grid/OPatch
chown -R grid:oinstall /u01/app/19.3.0/grid/OPatch
[grid@hostname ~]$ opatch version --更新后检查opatch的版本
OPatch Version: 12.2.0.1.37
OPatch succeeded.
[grid@hostname ~]$
3.更新oracle opatch 两个节点 root执行
mv /u01/app/oracle/product/19.3.0/db_1/OPatch /u01/app/oracle/product/19.3.0/db_1/OPatch.bak --备份opatch
unzip -q p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.3.0/db_1/
chmod -R 755 /u01/app/oracle/product/19.3.0/db_1/OPatch
chown -R oracle:oinstall /u01/app/oracle/product/19.3.0/db_1/OPatch
4.解压patch包 两个节点 root执行
unzip p35319490_190000_Linux-x86-64.zip -d /u01/app/
unzip p35354406_190000_Linux-x86-64.zip -d /u01/app/
chown -R grid:oinstall /u01/app/35319490
chmod -R 755 /u01/app/35319490
chown -R grid:oinstall /u01/app/35354406
chmod -R 755 /u01/app/35354406
5.兼容性检查
OPatch兼容性检查 两个节点 grid用户
/u01/app/19.3.0/grid/OPatch/opatch lsinventory -detail -oh /u01/app/19.3.0/grid/
6.补丁冲突检查
📢 注意:db1和db2都执行
子目录的五个patch和OJVM分别在grid和oracle用户下分别执行检查
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/app/35319490/33575402
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/app/35319490/35320081
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/app/35319490/35320149
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/app/35319490/35332537
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/app/35319490/35553096
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/app/35354406
7.空间检查
📢 注意:db1和db2都执行
Grid 执行
vi /tmp/patch_list_gihome.txt #新建文件加入需要检查的patch no
/u01/app/35319490/33575402
/u01/app/35319490/35320081
/u01/app/35319490/35320149
/u01/app/35319490/35332537
/u01/app/35319490/35553096
/u01/app/35354406
两个节点 grid用户 oracle用户分别执行
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt
8.补丁分析检查
Root 执行
/u01/app/19.3.0/grid/OPatch/opatchauto apply /u01/app/35319490 -analyze ---大约2分钟
/u01/app/19.3.0/grid/OPatch/opatchauto apply /u01/app/35354406 -analyze ---大约6.5分钟
9.grid 升级
## roo用户两个节点都要分别执行 --grid upgrade
/u01/app/19.3.0/grid/OPatch/opatchauto apply /u01/app/35354406 -oh /u01/app/19.3.0/grid ---约6.5分钟(OJVM)
/u01/app/19.3.0/grid/OPatch/opatchauto apply /u01/app/35319490 -oh /u01/app/19.3.0/grid ---约12分钟(GI)
opatch lspatches
[grid@hostname ~]$ opatch lspatches --升级后的状态
35553096;TOMCAT RELEASE UPDATE 19.0.0.0.0 (35553096)
35332537;ACFS RELEASE UPDATE 19.20.0.0.0 (35332537)
35320149;OCW RELEASE UPDATE 19.20.0.0.0 (35320149)
35320081;Database Release Update : 19.20.0.0.230718 (35320081)
33575402;DBWLM RELEASE UPDATE 19.0.0.0.0 (33575402)
35354406;OJVM RELEASE UPDATE: 19.20.0.0.230718 (35354406)
10.oracle 升级
## root两个节点都要分别执行 --oracle upgrade
oracle 升级前需要关闭数据库 --如果不关闭会有报错opatch失败
srvctl stop database -d dbname
/u01/app/oracle/product/19.3.0/db_1/OPatch/opatchauto apply /u01/app/35319490/35320081 -oh /u01/app/oracle/product/19.3.0/db_1
11.升级后动作
仅节点1
opatch lspatches
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> alter system set cluster_database=false scope=spfile; --设置接非集群
srvctl stop db -d dbname
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP UPGRADE
##以upgrade模式启动pdb是无法open的,需要关闭后正常startup后才可以open
SQL> SHUTDOWN
SQL> STARTUP
SQL> alter system set cluster_database=true scope=spfile sid='*'; ##改回集群数据库
SQL> SHUTDOWN
srvctl start database -d dbname #启动所有节点数据库
SQL>alter pluggable database all open;
如果使用了pdb执行前确认两个节点pdb都打开,如果pdb没有打开 可能会出现cdb和pdb RU不一致,导致pdb受限。
[oracle@db1 ~]$ datapatch -verbose #确认都pdb 都open后执行datapatch
如果pdb没有更新 可以使用这个命令强制更新ru
datapatch -verbose -apply ru_id -force –pdbs pdbname
--编译无效对象
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
完成后检查patch情况
set linesize 180
col action for a15col status for a15select PATCH_ID,PATCH_TYPE,ACTION,STATUS,TARGET_VERSION from dba_registry_sqlpatch;