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