实验环境-我是从19.0.0.0直接打到19.23.0.0.0,适合刚部署好的集群打补丁直接到最新版本。
查看当前环境
查询集群中运行的 Oracle Clusterware 软件的 activex 版
查询本地节点上二进制文件中存储的 Oracle Clusterware 软件的版本
![](https://i-blog.csdnimg.cn/direct/2fa26e23d9ea4a40b36b7852bf0605ff.png)
查询本地服务器上 OHAS 和 Oracle Clusterware 的状态
![](https://i-blog.csdnimg.cn/direct/f8f0fdaa7cd647fdb89237bb11b3b36c.png)
查看oracle补丁信息以及版本
![](https://i-blog.csdnimg.cn/direct/ee787cad110f49418439da9a53e8007c.png)
查看grid补丁信息以及版本
![](https://i-blog.csdnimg.cn/direct/64e382e5d1a14eedad3e2eedc5d67fff.png)
查看Opatch版本
![](https://i-blog.csdnimg.cn/direct/fbc9f06de9fe42ac9bb593f8baa5dd54.png)
查看数据库版本
![](https://i-blog.csdnimg.cn/direct/51e9d0d1af5e401597f0b9a0a17ab1be.png)
校验数据库清单并保存结果集
grid用户:
![](https://i-blog.csdnimg.cn/direct/a2e5529cde6e4e88865d908a05b6b3ab.png)
Oracle用户:
![](https://i-blog.csdnimg.cn/direct/dbf4781151804f5cbfcb1387b0b424f6.png)
升级OPatch,两个节点都要升级,首先需要备份原来的OPatch
升级oracle的OPatch,在两个节点
一节点:
![](https://i-blog.csdnimg.cn/direct/6922b7c3a3c440c3bed1a338eeb6cc30.png)
二节点:
![](https://i-blog.csdnimg.cn/direct/46af8b4af82f45c7a60dba48ca0c7f6e.png)
![](https://i-blog.csdnimg.cn/direct/6ab3a48577784be4be6b1fc6abbfe82b.png)
至此Oracle用户的OPatch升级完毕。
升级grid用户OPatch,在两个节点
一节点:
![](https://i-blog.csdnimg.cn/direct/8650c8c28c0d41fa99c4ba6880787c31.png)
![](https://i-blog.csdnimg.cn/direct/878fa84ad34640e68db15a4fd87a8b46.png)
二节点:
![](https://i-blog.csdnimg.cn/direct/fa963d04670a46c699b429ab109cf3bb.png)
![](https://i-blog.csdnimg.cn/direct/4df08dd7af3a46e189667ee35026ca65.png)
至此grid用户OPatch升级完毕
验证Oracle Inventory的有效性,分别用grid,oracle用户验证
grid用户:
![](https://i-blog.csdnimg.cn/direct/e80ec3b0cf264bdeaa311ad1fe59e3f5.png)
Oracle用户:
![](https://i-blog.csdnimg.cn/direct/41c874e48abd484a9ec433ea093ac0ab.png)
至此 Oracle Inventory 有效性验证完毕
解压授权 19.23.0.0.0 GI RU包,我把这个放在家目录了,这个需要特别注意,我之前把GI的RU包用root用户解压之后再给grid用户权限这样不行,很奇怪只有在家目录才能解压,给了权限也不行,oracle用户又访问不了grid家目录,没办法,我把GI用oracle和grid在家目录分别解压了一遍,其实也不影响这些都是打补丁前的检查工作。
否则会报这个错误:
![](https://i-blog.csdnimg.cn/direct/4ae8c285b8d443978d239490b6dc1cd9.png)
使用grid用户编写一个文件
![](https://i-blog.csdnimg.cn/direct/451e83cee58e46e29f735bad5d954383.png)
检查Patch是否冲突,grid和oracle用户都要检查
Grid用户检查,
![](https://i-blog.csdnimg.cn/direct/3f47fe9ff7b64e0787ae4802dfbe0ce1.png)
Oracle用户检查:
![](https://i-blog.csdnimg.cn/direct/1e59a52cbe8f475da99d72983eb76efa.png)
可以看到没有冲突,至此冲突检查完毕。
执行opatchauto 工具应用RU
对GI HOME 进行patch:
- 升级过程会自动关闭和启动集群。 (2) 先升级节点1 grid,再升级节点2 grid。
一节点:
![](https://i-blog.csdnimg.cn/direct/a0a54d9bf69544c0b75a7bfdd137edb9.png)
二节点:
![](https://i-blog.csdnimg.cn/direct/25711199856a4cdd867fd0747b2ebca5.png)
![](https://i-blog.csdnimg.cn/direct/70d56faac4214b558ac9c8ef8b069c65.png)
开始升级 DB RU (RELEASE UPDATE) 补丁
由于 GI RU 包含 DB RU,所以 RAC 环境升级 DB 时,还将使用此 Patch 即可。 说明: (两个节点都要执行) (1) 升级过程会自动关闭和启动集群。 (2) 先升级节点1 database,再升级节点2 database。
其实打完GI理论上就不用打DB了,但是很多打补丁都是GI和DB都打,我打DB也成功了,所以就都打了。
两节点都需要升级
![](https://i-blog.csdnimg.cn/direct/8ae7d3fa3a6f4698a8e146130b94545f.png)
![](https://i-blog.csdnimg.cn/direct/8b6801389fb34bb5a1a89e7f5bdff6a3.png)
更新数字字典
/u01/app/oracle/product/19.3.0/dbhome_1/OPatch/datapatch -verbose
处理无效对象
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
@utlrp.sql